sql server 2008中的datetime变量存在问题

sql server 2008中的datetime变量存在问题,sql,sql-server,sql-server-2008,Sql,Sql Server,Sql Server 2008,我试图在SQL中声明一个日期变量,当我调试它时,它挂起在SET部分。查询还有很多内容,但它本质上是循环的,添加不同的输入,直到12月31日 DECLARE @ShiftDate AS Datetime BEGIN SET @ShiftDate = '2013-01-01 00:00:00.000' END DECLARE @ShiftDate AS DATETIME BEGIN SET @ShiftDate = '2013-01-01 00:00:00.000' END DECLARE

我试图在SQL中声明一个日期变量,当我调试它时,它挂起在
SET
部分。查询还有很多内容,但它本质上是循环的,添加不同的输入,直到12月31日

DECLARE @ShiftDate AS Datetime
BEGIN
    SET @ShiftDate = '2013-01-01 00:00:00.000'
END
DECLARE @ShiftDate AS DATETIME
BEGIN
SET @ShiftDate = '2013-01-01 00:00:00.000'
END

DECLARE @EndDate AS DATETIME
BEGIN
SET @EndDate = '2013-12-31 00:00:00.000'
END


GO
WHILE @ShiftDate <= @EndDate
BEGIN
INSERT INTO [ManufacturingTracking].[dbo].[TenteringCrewShift]
       ([SearchDate]
       ,[Shift])
 VALUES (@ShiftDate, 'B')
 SET @ShiftDate = DATEADD(DATE, 1, @ShiftDate)
 IF @ShiftDate > @EndDate
    BREAK
 ELSE
    CONTINUE
END
将@ShiftDate声明为Datetime
开始
设置@ShiftDate='2013-01-01 00:00:00.000'
结束
将@ShiftDate声明为日期时间
开始
设置@ShiftDate='2013-01-01 00:00:00.000'
结束
将@EndDate声明为DATETIME
开始
SET@EndDate='2013-12-31 00:00:00.000'
结束
去
而@ShiftDate@EndDate
打破
其他的
继续
结束
如果我告诉它继续,它会出现错误:

必须声明标量变量“@ShiftDate”


感谢您的帮助。

从脚本中删除
GO
GO
实际上是在启动一个新的处理部分,而
@ShiftDate
将不在脚本下一部分的范围内


有关详细信息,请参阅。

从脚本中删除
GO
GO
实际上是在启动一个新的处理部分,而
@ShiftDate
将不在脚本下一部分的范围内


有关更多信息,请参阅。

对我来说很好,这是您的整个脚本吗?为什么集合位于开始-结束块中?如果使用集合而不使用开始/结束,则会出现相同的错误?在这里工作,但可能有一些设置/范围问题?@LittleBobbyTables我用我的脚本的更多内容更新了这个问题,让您有更好的想法。对我来说很好,这是您的整个脚本吗?为什么集合在开始-结束块中?如果使用不带开始/结束的集合,您会遇到相同的错误?在这里工作,但可能有一些设置/范围问题?@LittleBobbyTables我用我的更多脚本更新了这个问题,让你有一个更好的想法。谢谢!这解决了我的问题谢谢!这解决了我的问题