我在 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 行 ') 附近的语法不正确