0

我试图在 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”。

任何帮助表示赞赏。

4

1 回答 1

4

GO从您的脚本中删除;GO本质上是开始一个新的处理部分,并且不会@ShiftDate在脚本的下一部分中。

有关详细信息,请参阅MSDN 文档GO

于 2013-01-04T17:29:51.110 回答