Berikut adalah langkah-langkah bagaimana Anda menulis kursor
1-Deklarasikan Kursor oleh menggunakan nama Kursor dengan pernyataan Pilih
2- Buka Kursor untuk diisi dengan output pernyataan Pilih
3- Ambil baris untuk memprosesnya satu per satu
4- Tutup Kursor
5- De-allocate Cursor
Kami menghadapi situasi yang berbeda di mana kami dapat menggunakan kursor. Di bawah ini adalah beberapa contoh di mana kita dapat menggunakan kursor
Contoh:
1-- Matikan semua koneksi dari Database SQL Server
2-- Tambahkan kolom baru seperti CreatedBy ke semua tabel di Database
3--Aktifkan/Nonaktifkan semua pemicu di Database SQL Server
4--Buat Skrip/Ambil cadangan Semua Database di SQL Server satu per satu
5 --Truncate/Delete semua tabel dari Database SQL Server
Contoh Kode:
Kode di bawah ini dapat digunakan untuk mematikan semua proses ke database. Kami tidak dapat mengganti nama database jika ada proses yang mengakses database. Untuk mengganti nama kita harus mematikan semua proses sebelum kita mengganti nama database di SQL Server.
USE MASTER
GO
DECLARE @DatabaseName AS VARCHAR(500)
-->Provide the DataBaseName for which want to Kill all processes.
SET @DatabaseName='TestDB'
DECLARE @Spid INT
--1: Declare Cursor:
DECLARE KillProcessCur CURSOR FOR
SELECT spid
FROM sys.sysprocesses
WHERE DB_NAME(dbid) = @DatabaseName
--2: OPEN Cursor
OPEN KillProcessCur
--3: Fetch A record
FETCH Next FROM KillProcessCur INTO @Spid
--Loop Through the Rows one by one
WHILE @@FETCH_STATUS = 0
BEGIN
DECLARE @SQL VARCHAR(500)=NULL
SET @SQL='Kill ' + CAST(@Spid AS VARCHAR(5))
PRint @SQL
EXEC (@SQL)
PRINT 'ProcessID =' + CAST(@Spid AS VARCHAR(5))
+ ' killed successfull'
FETCH Next FROM KillProcessCur INTO @Spid
END
--4: Close the Cursor
CLOSE KillProcessCur
--5: Deallocate Cursor
DEALLOCATE KillProcessCur