ホームページ >データベース >mysql チュートリアル >カーソルを使用して T-SQL クエリ結果を反復処理する方法

カーソルを使用して T-SQL クエリ結果を反復処理する方法

Barbara Streisand
Barbara Streisandオリジナル
2024-12-30 14:47:14996ブラウズ

How to Iterate Through T-SQL Query Results Using Cursors?

T-SQL でのクエリ結果のループ

クエリの結果をループするには、SELECT @id=table.id FROM table、 T-SQL では CURSOR を利用できます。これを実現する方法を示すコード スニペットを次に示します。

DECLARE @id INT;
DECLARE @name NVARCHAR(100);
DECLARE @getid CURSOR;

SET @getid = CURSOR FOR
SELECT
    table.id,
    table.name
FROM
    table;

OPEN @getid;
FETCH NEXT
FROM @getid
INTO @id, @name;
WHILE @@FETCH_STATUS = 0
BEGIN
    EXEC stored_proc @varName = @id, @otherVarName = 'test', @varForName = @name;
    FETCH NEXT
    FROM @getid
    INTO @id, @name;
END;

CLOSE @getid;
DEALLOCATE @getid;

このスクリプト内:

  • クエリの結果を反復処理するために @getid という名前の CURSOR が作成されます。
  • OPEN ステートメントはクエリを実行し、結果をカーソルに割り当てます。
  • FETCH NEXT ステートメントは、結果の最初の行を取得し、その値を変数 @id と @name に割り当てます。
  • WHILE ループは、処理する行がなくなるまでカーソルから行をフェッチし続けます。
  • 行ごとに、EXEC ステートメントは、パラメーター @varName、@otherVarName、および @varForName を、 table.
  • すべての行が処理された後、CLOSE ステートメントと DEALLOCATE ステートメントが閉じて、メモリからカーソルが削除されます。

以上がカーソルを使用して T-SQL クエリ結果を反復処理する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。