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

Date parameter not enclosed in quotes in SSMS-generated script

我有这个存储过程:

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

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

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

我收到这个错误:

Operand type clash: int is incompatible with date

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

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

SELECT  'Return Value' = @return_value

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

E:显然 datetime 通过了引号,而 date 没有?

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