Я попытался изменить значение параметра по умолчанию следующим образом:
ALTER PROCEDURE [dbo].[my_sp]
@currentDate datetime = GETDATE()
и все, что дал мне предварительный компилятор SQL, было этой ошибкой:
Msg 102, уровень 15, состояние 1, процедура my_sp, строка 8 Неправильный синтаксис рядом с '('.
Я уже создал процедуру. (Я не уверен, что это актуально.) Я использовал значение по умолчанию null и проверял его позже, но это не кажется правильным. Могу я сделать это одной строкой?
Обновление: я отказался от описания параметров хранимой процедуры в MSDN :
[= default] Значение параметра по умолчанию. Если определено значение по умолчанию, функция может быть выполнена без указания значения для этого параметра.
Примечание.
Для функций CLR могут быть указаны значения параметров по умолчанию, за исключением типов данных varchar (max) и varbinary (max).Когда параметр функции имеет значение по умолчанию, ключевое слово DEFAULT должно быть указано при вызове функции для получения значения по умолчанию. Это поведение отличается от использования параметров со значениями по умолчанию в хранимых процедурах, в которых исключение параметра также подразумевает значение по умолчанию.
Я неправильно это читаю?
Большое спасибо.
источник
Я не думаю, что это возможно, вы должны использовать буквальное (постоянное) значение по умолчанию.
Однако вы можете сделать это:
источник
Вы можете попробовать следующее:
источник
Я предполагаю, что вы используете Microsoft SQL Server из квадратных скобок в вашем примере.
Из MSDN :
Функция
GETDATE()
время от времени возвращает другое значение, поэтому это не постоянное выражение.источник
Это значение не детерминировано и не может использоваться.
источник
Предложение:
Установите значение по умолчанию на
NULL
Сделайте Default
GETDATE()
во внешнем интерфейсе.источник