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 に答える