Rumah > pangkalan data > tutorial mysql > Bagaimana untuk Menggelung Melalui Rekod SQL Server Menggunakan Kursor?

Bagaimana untuk Menggelung Melalui Rekod SQL Server Menggunakan Kursor?

DDD
Lepaskan: 2024-12-26 13:06:18
asal
966 orang telah melayarinya

How to Loop Through SQL Server Records Using Cursors?

Menggelung Melalui Rekod dalam Pelayan SQL

Pertanyaan bergelung adalah perkara biasa untuk mendapatkan dan memproses data daripada jadual pangkalan data. Panduan ini akan menunjukkan cara untuk menggelung melalui set rekod menggunakan T-SQL dan kursor dalam SQL Server.

Mencipta Kursor

Untuk menggelung melalui set daripada rekod, anda mesti mencipta kursor dahulu. Kursor ialah penunjuk sementara yang boleh digunakan untuk melelaran melalui baris yang dikembalikan oleh pertanyaan. Kod berikut mentakrifkan kursor yang dipanggil @MyCursor:

DECLARE @MyCursor CURSOR;
Salin selepas log masuk

Menyediakan Pertanyaan

Seterusnya, anda perlu menyediakan pertanyaan yang akan mendapatkan semula data yang anda mahu berpusing. Dalam contoh anda, anda mempunyai pertanyaan yang memilih 1000 rekod teratas daripada jadual dengan StatusID bersamaan dengan 7. Anda boleh menggunakan pertanyaan ini untuk mengisi kursor:

SET @MyCursor = CURSOR FOR
select top 1000 YourField from dbo.table
where StatusID = 7
Salin selepas log masuk

Mengambil dan Memproses Rekod

Setelah kursor dibuat dan diisi, anda boleh mengambil rekod baris demi baris ke dalam pembolehubah tempatan, seperti @MyField:

OPEN @MyCursor
FETCH NEXT FROM @MyCursor INTO @MyField
Salin selepas log masuk

Pernyataan FETCH NEXT mendapatkan semula baris seterusnya daripada kursor dan memberikan nilainya kepada pembolehubah yang ditentukan.

Keadaan Gelung

Untuk membuat gelung, anda memerlukan syarat yang menentukan masa untuk berhenti mengambil rekod. Dalam kes ini, anda boleh menggunakan pembolehubah sistem @@FETCH_STATUS, yang mengembalikan status kursor:

WHILE @@FETCH_STATUS = 0
BEGIN
Salin selepas log masuk

Selagi nilai @@FETCH_STATUS ialah 0, gelung akan terus dilaksanakan. Apabila semua rekod telah diambil, @@FETCH_STATUS akan ditetapkan kepada -1 dan gelung akan ditamatkan.

Logik Pemprosesan

Dalam gelung, anda boleh melaksanakan anda logik yang dikehendaki pada data yang diambil. Sebagai contoh, anda boleh mencetak nilai YourField ke konsol atau mengemas kini rekod berkaitan dalam jadual lain.

/*
  YOUR ALGORITHM GOES HERE
*/
Salin selepas log masuk

Menutup Kursor

Selepas semua rekod mempunyai telah diproses, anda harus menutup dan mengagihkan kursor untuk mengosongkan sumber sistem:

CLOSE @MyCursor;
DEALLOCATE @MyCursor;
Salin selepas log masuk

Dengan mengikuti langkah ini, anda boleh dengan mudah mengulangi satu set rekod dalam SQL Server dan melaksanakan operasi yang diperlukan.

Atas ialah kandungan terperinci Bagaimana untuk Menggelung Melalui Rekod SQL Server Menggunakan Kursor?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan