Sqlserver
 sql >> Teknologi Basis Data >  >> RDS >> Sqlserver

Tentukan Langkah-Langkah untuk Kursor SQL Server - Tutorial SQL Server / TSQL

Kursor adalah objek yang disediakan untuk kita di SQL Server untuk melakukan operasi baris demi baris.

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
 
 
 
 

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. SWITCHOFFSET() Contoh di SQL Server

  2. Bagaimana cara menghilangkan batasan default SQL tanpa mengetahui namanya?

  3. Unggah file CSV ke server SQL

  4. Haruskah saya menggunakan aturan CASCADE DELETE?

  5. Mana yang lebih berkinerja, CTE atau tabel sementara?