Функция SQL как значение параметра по умолчанию?

100
задан ricksmt 3 February 2016 в 19:36
поделиться

6 ответов

Значение по умолчанию для параметра хранимых процедур должно быть константы . Необходимо было бы сделать следующее...

ALTER Procedure [dbo].[my_sp]
@currentDate datetime = null
AS
IF @currentDate is null
SET @currentDate = getdate()
152
ответ дан Brian Kim 24 November 2019 в 04:51
поделиться

Я не думаю, что это возможно, необходимо использовать литеральное (постоянное) значение в качестве значения по умолчанию.

Однако можно сделать это:

Set @currentDate = Coalesce(@currentDate , GetDate())
32
ответ дан Otávio Décio 24 November 2019 в 04:51
поделиться

Я вывожу, Вы используете Microsoft SQL Server от квадратных скобок в Вашем примере.

От MSDN:

Только постоянная величина, такая как символьная строка; скалярная функция (или система, пользовательская, или функция CLR); или ПУСТОЙ УКАЗАТЕЛЬ может использоваться в качестве значения по умолчанию.

функция GETDATE() возвраты различное значение время от времени, таким образом, это не константное выражение.

7
ответ дан Bill Karwin 24 November 2019 в 04:51
поделиться

То значение не детерминировано и не может использоваться

2
ответ дан SQLMenace 24 November 2019 в 04:51
поделиться

Предложение:

Набор значение по умолчанию к NULL

Делают Значение по умолчанию GETDATE() во фронтэнде.

0
ответ дан iamdave 24 November 2019 в 04:51
поделиться

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

Set @CurrentDate=IsNull(@CurrentDate,GetDate())
12
ответ дан 24 November 2019 в 04:51
поделиться
Другие вопросы по тегам:

Похожие вопросы: