Использовать GetDate () в качестве параметра по умолчанию для SP в T-SQL не работает - PullRequest
1 голос
/ 26 июня 2019

Я пытаюсь создать SP в TSQL, который получает месяц в качестве параметра (в цифровом формате).Я хотел бы, чтобы, если параметр был подавлен пользователем, тогда SP будет использовать текущий месяц.

Я пробовал это, но он говорит, что я использую неправильный синтаксис:

CREATE PROCEDURE myproc
    @month int = select Month(GetDate())

Что я делаю не так?

Спасибо!

1 Ответ

1 голос
/ 26 июня 2019

Вы не можете передать вызов func в качестве значения параметра по умолчанию:

CREATE PROCEDURE myproc
    @month int = select Month(GetDate())

должно быть:

CREATE PROCEDURE myproc
@month int = NULL
AS
BEGIN
 SET @month = COALESCE(@month, Month(GetDate()));

 SELECT @month;
END;

ДБ <> Fiddle demo

Если пользователь не указывает значение для @month, то по умолчанию это NULL и COALESCE установит правильное значение.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...