Дефолтные параметры в хранимых процедурах SQL

Нужно создать процедуру, которая будет искать записи в таблице по параметру date, если дата не указана - ищем записи с текущей датой. Пытаюсь сделать вот так:

CREATE PROC getByDate (@date DATETIME = (SELECT GETDATE()))
AS
BEGIN
    SELECT * FROM myTable
    WHERE [date] = @date
END

Это синтаксически неверно, как передать дефолтное значение параметру правильно?


Ответы (1 шт):

Автор решения: Yitzhak Khabinsky

Вы можете попробовать следующий метод.

Значение по умолчанию - NULL.

SQL

CREATE PROC getByDate 
(
    @date DATETIME = NULL
AS
BEGIN
    SET NOCOUNT ON;

    SELECT * 
    FROM myTable
    WHERE [date] = COALESCE(@date, GETDATE());
END
→ Ссылка