gpt4 book ai didi

sql - Offset 和 Fetch Next 可以在循环中使用吗?

转载 作者:行者123 更新时间:2023-12-02 03:00:22 25 4
gpt4 key购买 nike

我需要编写一个循环来将 SQL 临时表上的数据一一传递给存储过程。可以使用以下方法吗?它需要大量内存吗?

DECLARE @SomeData AS TABLE(
Id INT,
Name VARCHAR(MAX),
Age INT
)

INSERT INTO @SomeData
( Id, Name, Age )
VALUES ( 1, 'AAAAA', 10 ),
( 2, 'BBBBB', 12 ),
( 3, 'CCCCC', 13 ),
( 4, 'DDDDD', 14 ),
( 5, 'EEEEE', 15 );

DECLARE @iterator INT = 0

WHILE @iterator< (SELECT COUNT(Id) FROM @SomeData)
BEGIN
SELECT *
FROM @SomeData
ORDER BY Id
OFFSET @iterator ROWS
FETCH NEXT 1 ROWS ONLY

SET @iterator +=1


/*Execute a Stored Procedure*/
END

最佳答案

我认为一段时间后您不需要再次 (SELECT COUNT(Id) FROM @SomeData) ,如果表 SomeData 是大数据,它会变慢。你可以这样试试:

DECLARE @iterator INT = 0
declare @n int = (SELECT COUNT(Id) FROM @SomeData)
WHILE @iterator< @n
BEGIN
SELECT *
FROM @SomeData
ORDER BY Id
OFFSET @iterator ROWS
FETCH NEXT 1 ROWS ONLY

SET @iterator +=1


/*Execute a Stored Procedure*/
END

关于sql - Offset 和 Fetch Next 可以在循环中使用吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46482044/

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