SQL のループに問題があります。彼が終了日に達するまで開始日をループしたい。
カーソルを使用しないように言われたので、次のような例を見つけました。
with mycte as
(
select cast('2007-01-01' as datetime) DateValue
union all
select DateValue + 1
from mycte
where DateValue + 1 < '2030-12-31'
)
select * from mcte
これは機能するので、変数を状況に合わせて変更しました。
with View_Solidnet_Training as
(
select StartingDate as DateValue
union all
insert into OBJ_Availability values(34, DateValue + 1, 'AM', 2, 'Test')
select DateValue + 1
from View_Solidnet_Training
where DateValue + 1 < EndingDate
)
select * from View_Solidnet_Training
しかし、次のエラーが表示されます。
メッセージ 156、レベル 15、状態 1、行 5 キーワード「挿入」付近の構文が正しくありません。メッセージ 128、レベル 15、状態 1、行 5 「DateValue」という名前は、このコンテキストでは許可されていません。有効な式は、定数、定数式、および (一部のコンテキストでは) 変数です。列名は許可されていません。メッセージ 102、レベル 15、状態 1、行 9 ') 付近の構文が正しくありません