Próbowałem zmienić domyślną wartość parametru za pomocą tego:
ALTER PROCEDURE [dbo].[my_sp]
@currentDate datetime = GETDATE()
i wszystko, co dał mi prekompilator SQL, to ten błąd:
Msg 102, poziom 15, stan 1, procedura my_sp, wiersz 8 Niepoprawna składnia w pobliżu „(”.
Stworzyłem już procedurę. (Nie jestem pewien, czy to ma znaczenie). Używałem domyślnej wartości zerowej i sprawdzałem ją później, ale to nie wydaje się właściwe. Czy mogę to zrobić w jednej linii?
Aktualizacja: wychodziłem z opisu MSDN parametrów procedury składowanej :
[= wartość domyślna] To wartość domyślna parametru. Jeśli zdefiniowano wartość domyślną, funkcję można wykonać bez określania wartości tego parametru.
Uwaga:
Dla funkcji CLR można określić domyślne wartości parametrów, z wyjątkiem typów danych varchar (max) i varbinary (max).Jeśli parametr funkcji ma wartość domyślną, słowo kluczowe DEFAULT musi zostać określone, gdy funkcja jest wywoływana w celu pobrania wartości domyślnej. To zachowanie różni się od używania parametrów z wartościami domyślnymi w procedurach składowanych, w których pominięcie parametru oznacza również wartość domyślną.
Czy źle to czytam?
Wielkie dzięki.
źródło
Nie sądzę, żeby to było możliwe, musisz domyślnie użyć wartości dosłownej (stałej).
Możesz jednak to zrobić:
źródło
Możesz spróbować w następujący sposób:
źródło
Wnioskuję, że używasz Microsoft SQL Server z nawiasów kwadratowych w twoim przykładzie.
Z MSDN :
Funkcja
GETDATE()
od czasu do czasu zwraca inną wartość, więc nie jest wyrażeniem stałym.źródło
Ta wartość nie jest deterministyczna i nie może być używana
źródło
Sugestia:
Ustaw wartość domyślną na
NULL
Zrób domyślne
GETDATE()
w interfejsie.źródło