我尝试用以下方法更改默认参数值:
ALTER PROCEDURE [dbo].[my_sp]
@currentDate datetime = GETDATE()
SQL 预编译器给我的就是这个错误:
Msg 102, Level 15, State 1, Procedure my_sp, Line 8 Incorrect syntax near '('.
我已经创建了该过程。 (我不确定这是否相关。)我使用了空默认值并稍后检查,但这似乎不合适。我可以在一行中完成此操作吗?
<小时/> 更新:我要离开MSDN's description of stored procedure parameters :[ = default ] Is a default value for the parameter. If a default value is defined, the function can be executed without specifying a value for that parameter.
Note:
Default parameter values can be specified for CLR functions except for the varchar(max) and varbinary(max) data types.当函数的参数有默认值时,调用函数时必须指定关键字DEFAULT来检索默认值。此行为与在存储过程中使用具有默认值的参数不同,在存储过程中省略参数也意味着默认值。
block 引用>我读错了吗?
非常感谢。
最佳答案
存储过程参数的默认值必须是常量。 您需要执行以下操作...
ALTER Procedure [dbo].[my_sp]
@currentDate datetime = null
AS
IF @currentDate is null
SET @currentDate = getdate()
关于SQL函数作为默认参数值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/470664/