Могу ли я по умолчанию для параметра хранимой процедуры sql установить значение динамическое выражение?

Я хочу иметь параметр «@myDate» в хранимой процедуре, который по умолчанию имеет значение за 2 года до сегодняшнего дня, если не указано иное. Я попытался сделать что-то подобное в своем определении процедуры:

CREATE PROCEDURE myProcedure(   @param1 int,
                                @param2 varchar(20),
                                @param3 int = null,
                                @myDate datetime = dateadd(year,-2,getDate()) )

Я получаю следующую синтаксическую ошибку:

Incorrect syntax near '('.

Позволяет ли сервер sql устанавливать динамические выражения в качестве значений параметров по умолчанию? Если нет, как я могу обойти это (кроме неуклюжего IF @myDate is null SET @myDate = ... )?

7
задан froadie 9 March 2011 в 14:58
поделиться