Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

Znany problem?:Procedura składowana SQL Server 2005 nie kończy się z podaniem parametru

Spróbuj zamaskować parametr wejściowy.

Przypuszczam, że rekompilacja nie działa z powodu określonego ustawienia domyślnego (EDYTUJ :Lub parametr wysyłany przy pierwszym wywołaniu) wykrywany w czasie kompilacji. Tak więc ponowna kompilacja nie ma żadnego efektu.

Widziałem ogromną różnicę między szacowanymi planami, po prostu zmieniając domyślną wartość z, powiedzmy, zero na NULL lub nie mając go.

ALTER PROCEDURE [usp_debug_mightwork]
    @DATA_DT_ID AS int = 20081130
AS
BEGIN
    DECLARE @IDATA_DT_ID AS int
    SET @IDATA_DT_ID = @DATA_DT_ID
    -- Stuff here that depends on IDATA_DT_ID
END

Myślę, że ten artykuł wyjaśnia...

EDYCJA:

Nowy link do planów i parametrów zapytań . Wciąż jest to wąchanie parametrów, czy określono wartość domyślną, czy nie.

Rodzaj powiązanego artykułu o stałych i planach



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Znaki UTF-8 są zapisywane jako ?? podczas wstawiania, ale zapisuje się poprawnie podczas aktualizacji

  2. Podstawy łączenia wewnętrznego SQL Server z przykładami

  3. Jak przekonwertować wartości wierszy na kolumny z dynamiczną liczbą kolumn?

  4. Sprawdź, czy tabela zawiera wiersze, czy nie sql server 2005

  5. Czy mogę mieć klucz obcy odwołujący się do kolumny w widoku w SQL Server?