use*_*044 100 sql sql-server stored-procedures
我尝试用以下方法更改默认参数值:
ALTER PROCEDURE [dbo].[my_sp]
@currentDate datetime = GETDATE()
并且所有SQL预编译器都给了我这个错误:
消息102,级别15,状态1,过程my_sp,行8'''附近的语法不正确.
我已经创建了这个程序.(我不确定这是否相关.)我正在使用null默认值并稍后检查,但这似乎不合适.我可以在一行中做到这一点吗?
[= default]是参数的默认值.如果定义了默认值,则可以在不指定该参数值的情况下执行该函数.
注意:
除varchar(max)和varbinary(max)数据类型外,可以为CLR函数指定缺省参数值.当函数的参数具有默认值时,必须在调用函数时指定关键字DEFAULT以检索默认值.此行为与在存储过程中使用具有默认值的参数不同,其中省略参数也意味着默认值.
我读错了吗?
非常感谢.
Bri*_*Kim 152
存储过程参数的默认值必须是常量.你需要做以下事情......
ALTER Procedure [dbo].[my_sp]
@currentDate datetime = null
AS
IF @currentDate is null
SET @currentDate = getdate()
Otá*_*cio 32
我不认为这是可能的,您必须使用文字(常量)值作为默认值.
但是你可以这样做:
Set @currentDate = Coalesce(@currentDate , GetDate())
小智 12
您可以尝试如下:
Set @CurrentDate=IsNull(@CurrentDate,GetDate())
| 归档时间: | 
 | 
| 查看次数: | 85854 次 | 
| 最近记录: |