日期:2014-05-17  浏览次数:20432 次

对 执行存储过程时参数 的疑问
在SQLserver2005中:

调用函数的时候可以写成下面的形式:
dbo.函数名(YEAR(GETDATE()))
dbo.函数名(@变量名 + 1)

而相应地,
执行存储过程的时候:
EXEC 存储过程名 YEAR(GETDATE()) 的时候,显示'GETDATE' 附近有语法错误。
EXEC 存储过程名 @变量名 + 1 的时候,显示'+' 附近有语法错误。

DECLARE @YEAR INT
SET @YEAR = YEAR(GETDATE())
EXEC 存储过程名 @YEAR 
是可以的。

难道是因为存储过程有相关规定,执行的时候参数里不可以直接出现函数和四则运算吗?
那为什么函数不这么规定呢?这是什么情况...
SQL?Server 存储过程

------解决方案--------------------
EXEC的确不能做四则运算