Значение по умолчанию для параметра хранимых процедур должно быть константы . Необходимо было бы сделать следующее...
ALTER Procedure [dbo].[my_sp]
@currentDate datetime = null
AS
IF @currentDate is null
SET @currentDate = getdate()
Я не думаю, что это возможно, необходимо использовать литеральное (постоянное) значение в качестве значения по умолчанию.
Однако можно сделать это:
Set @currentDate = Coalesce(@currentDate , GetDate())
Я вывожу, Вы используете Microsoft SQL Server от квадратных скобок в Вашем примере.
От MSDN:
Только постоянная величина, такая как символьная строка; скалярная функция (или система, пользовательская, или функция CLR); или ПУСТОЙ УКАЗАТЕЛЬ может использоваться в качестве значения по умолчанию.
функция GETDATE()
возвраты различное значение время от времени, таким образом, это не константное выражение.
То значение не детерминировано и не может использоваться
Предложение:
Набор значение по умолчанию к NULL
Делают Значение по умолчанию GETDATE()
во фронтэнде.
Вы можете попробовать следующее:
Set @CurrentDate=IsNull(@CurrentDate,GetDate())