Как установить параметр datetime по умолчанию в хранимой процедуре?

Я объявил хранимую процедуру в Sybase, и один из параметров имеет тип datetime. Теперь я хочу присвоить этой дате время значение по умолчанию.

Вот декларация:

create procedure Procedure 
(
    @fromDate datetime = getdate()
)
...

Однако Sybase дает мне ошибку

Number (102) Severity (15) State (1) Server (SERVER) Procedure (Procedure) Incorrect syntax near '('.

Можно ли сделать это? Если нет, есть ли обходной путь?

1 ответ

Решение

Вы не можете использовать вызов функции в назначении переменной по умолчанию (как вы узнали).

Установите значение по умолчанию, равное Null, и сначала поместите назначение в хранимую процедуру.

  create procedure Procedure 
  (
      @fromDate datetime = NULL
  )
  begin

      set @fromDate = coalesce( @fromDate , getdate() ) 

  end 
Другие вопросы по тегам