问题描述
我正在运行只接受一个DATE
类型的参数的存储过程。参数的名称为 DateParam
EXEC [MydbnAME].[dbo].[SPName] @DateParam = CONVERT(DATE,GETDATE());
但是出现以下错误:
关键字“ CONVERT”附近的语法不正确。
在这里以及其他论坛上的许多其他问题中,我都看到了此错误。但是我没有找到能解决问题的方法。感谢您的光临!
解决方法
SQL Server不会解析exec
中的表达式。因此分配一个参数:
DECLARE @today DATE = CONVERT(DATE,GETDATE());
EXEC [MyDBNAME].[dbo].[SPName] @DateParam = @today;
我想微软有此限制的充分理由-例如解析行中的歧义。这很痛苦。