2
SQL一時テーブルにあるデータをストアドプロシージャに1つずつ渡すためのループを作成する必要があります。以下の方法を使用しても問題ありませんか?それはたくさんの記憶を必要としますか?オフセット&フェッチ次はループで使用するのに問題ありませんか?
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
これは動作するクエリですか? – Squirrel
@ Squirrel-はい、動作しています:https://imgur.com/a/DYKKX。また、私の知識によると、この構文はSQL Server 2012の後にのみサポートされます – Spider
ちょうどカーソルを使用します。それらはテーブルを反復するように設計されています。 –