我在循環中遇到了SQL問題。 我想循環一個startdate直到他到達enddate。在不使用遊標的情況下在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
但我出現以下錯誤:
Msg 156, Level 15, State 1, Line 5 Incorrect syntax near the keyword 'insert'. Msg 128, Level 15, State 1, Line 5 The name "DateValue" is not permitted in this context. Valid expressions are constants, constant expressions, and (in some contexts) variables. Column names are not permitted. Msg 102, Level 15, State 1, Line 9 Incorrect syntax near ')
你得到的錯誤是什麼? – 2013-04-09 07:10:36
消息156,級別15,狀態1,行5 關鍵字'插入'附近的語法不正確。 Msg 128,Level 15,State 1,Line 5 在此上下文中不允許使用名稱「DateValue」。有效表達式是常量,常量表達式和(在某些情況下)變量。列名不被允許。 Msg 102,Level 15,State 1,Line 9 ')'附近的語法不正確。 – user2206834 2013-04-09 07:13:46
請不要將重要信息作爲評論發佈。編輯您的問題 – 2013-04-09 07:14:49