我正在尝试在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”。
感谢任何帮助。
答案 0 :(得分:4)
从脚本中删除GO
; GO
基本上是开始处理的新部分,而@ShiftDate
将不在您脚本的下一部分的范围内。
有关详细信息,请参阅MSDN documentation on GO
。