Rumah >pangkalan data >tutorial mysql >Bagaimana untuk Mengulang Melalui Keputusan Pertanyaan T-SQL Menggunakan Kursor?

Bagaimana untuk Mengulang Melalui Keputusan Pertanyaan T-SQL Menggunakan Kursor?

Barbara Streisand
Barbara Streisandasal
2024-12-30 14:47:14996semak imbas

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

Menggelung melalui Keputusan Pertanyaan dalam T-SQL

Untuk menggelungkan hasil pertanyaan PILIH @id=table.id DARI jadual, anda boleh menggunakan CURSOR dalam T-SQL. Berikut ialah coretan kod yang menunjukkan cara untuk mencapai perkara ini:

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;

Dalam skrip ini:

  • KURSOR bernama @getid dicipta untuk mengulang melalui hasil pertanyaan.
  • Pernyataan OPEN melaksanakan pertanyaan dan menyerahkan keputusan kepada kursor.
  • Pernyataan FETCH NEXT mendapatkan semula baris pertama hasil dan memberikan nilai kepada pembolehubah @id dan @name.
  • Gelung WHILE terus mengambil baris daripada kursor sehingga tiada lebih banyak baris untuk diproses.
  • Untuk setiap baris, pernyataan EXEC melaksanakan prosedur tersimpan stored_proc dengan parameter @varName, @otherVarName dan @varForName ditetapkan kepada nilai yang sepadan daripada jadual.
  • Selepas semua baris diproses, penyataan CLOSE dan DEALLOCATE menutup dan mengeluarkan kursor daripada memori.

Atas ialah kandungan terperinci Bagaimana untuk Mengulang Melalui Keputusan Pertanyaan T-SQL Menggunakan Kursor?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn