另一位开发人员创建了一个存储过程,该过程设置为每月作为 SQL 作业运行。它需要一个日期时间参数。当我尝试在作业或查询窗口中调用它时,我收到错误')'附近的语法不正确
。执行它的调用是:
exec CreateHeardOfUsRecord getdate()
当我给它一个硬编码日期(例如 exec CreateHeardOfUsRecord '4/1/2010'
)时,它工作正常。知道为什么我不能在这种情况下使用 getdate() 吗?谢谢。
最佳答案
通过 Exec 传递的参数 must either be constants or variables 。 GetDate() 被归类为函数。您需要声明一个变量来保存 GetDate() 的结果,然后将其传递给存储过程。
The supplied value must be a constant or a variable; you cannot specify a function name as a parameter value. Variables can be user-defined or system variables such as @@spid.
关于sql作业和日期时间参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2700479/