日期参数未包含在SSMS生成的脚本中的引号中

时间:2016-03-09 14:56:30

标签: sql-server sql-server-2008 ssms

我有这个存储过程:

....
ALTER PROCEDURE [dbo].[CalenderPreload]
@startingSunday date,
@numberOfYears int

AS
BEGIN
    SET NOCOUNT ON;
DECLARE @s DATE = DATEADD(year, @numberOfYears, @startingSunday);
.....

我正在尝试使用右键单击SSMS中对象资源管理器中的过程时使用上下文菜单的Execute Stored Procedure...菜单选项来执行它。

我收到此错误:

  

操作数类型碰撞:int与日期不兼容

这是我执行程序时SSMS生成的脚本:

EXEC    @return_value = [dbo].[CalenderPreload]
    @startingSunday = 20151227, -- notice no ' '
    @numberOfYears = 5

SELECT  'Return Value' = @return_value

出于某种原因,我的日期没有用引号括起来。

E:显然datetime传递引号而date没有?

1 个答案:

答案 0 :(得分:0)

根据这里的海报,这可能是一个错误,因为不再支持2008,(我没有选择升级)我的最佳解决方案是使用datetime代替date