Дефолтные параметры в хранимых процедурах 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