gpt4 book ai didi

sql - 使用带有 CTE 的游标

转载 作者:行者123 更新时间:2023-12-02 07:20:59 26 4
gpt4 key购买 nike

我需要一个用于以下查询的游标,以便我可以循环以获取/更新/插入一些其他数据。有人可以帮我解决这个问题吗?

DECLARE @FROMDATE DATETIME
DECLARE @TODATE DATETIME
SELECT @FROMDATE = Getdate()
SELECT @TODATE = Getdate() + 7

;WITH DATEINFO(DATES)
AS (SELECT @FROMDATE
UNION ALL
SELECT DATES + 1
FROM DATEINFO
WHERE DATES < @TODATE)
SELECT *
FROM DATEINFO
OPTION (MAXRECURSION 0)

我尝试了很多方法,但没有找到有效的。

我正在使用

declare @adate datetime
DECLARE @FROMDATE DATETIME
DECLARE @TODATE DATETIME
select @FROMDATE=getdate()
select @TODATE =getdate()+7

declare @weekdates cursor for
WITH DATEINFO(DATES) AS (SELECT @FROMDATE UNION ALL SELECT DATES + 1 FROM DATEINFO WHERE DATES < @TODATE)
SELECT * FROM DATEINFO OPTION (MAXRECURSION 0)

open @weekdates
fetch next from @weekdates into @adate
while @@fetch_status=0
begin
print 'success'
fetch next from @weekdates into @adate
end
close @weekdates
deallocate @weekdates

我仍然收到错误

最佳答案

只需将其放在公共(public)表表达式之前即可:

DECLARE @FROMDATE DATETIME 
DECLARE @TODATE DATETIME
select @FROMDATE=getdate()
select @TODATE =getdate()+7

declare boris cursor for

WITH DATEINFO(DATES)
AS (SELECT @FROMDATE
UNION ALL
SELECT DATES + 1
FROM DATEINFO
WHERE DATES < @TODATE)
SELECT *
FROM DATEINFO
OPTION (MAXRECURSION 0)

(但是,插入关于游标的常见警告几乎总是错误的工具。如果您可以找到一种方法以基于集合的方式完成整个操作,那么它通常是更好的选择,并且可能会表现得更好(或者在至少更适合性能调整))

关于sql - 使用带有 CTE 的游标,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14601407/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com