sql >> Databáze >  >> RDS >> Sqlserver

Definujte kroky pro SQL Server Cursor - SQL Server / TSQL výukový program

Kurzory jsou objekty, které nám SQL Server poskytuje k provádění operace řádek po řádku.

Zde jsou kroky, jak zapsat kurzor

1-Declare A Cursor by pomocí názvu kurzoru s příkazem Select
2- Otevřete kurzor pro naplnění výstupem příkazu Select
3- Načtěte řádky a zpracujte je jeden po druhém
4- Zavřete kurzor
5- De-allocate Cursor

Setkáváme se s různými situacemi, ve kterých můžeme použít kurzory. Níže je několik příkladů, ve kterých můžeme použít kurzory

Příklady:
1-- Zrušte všechna připojení z databáze SQL Server
2-- Přidejte nové sloupce, jako je CreatedBy do všechny tabulky v databázi
3--Povolení/Deaktivace všech spouštěčů v databázi SQL Server
4--Generování skriptů/Zálohování celé databáze na SQL Server jeden po druhém
5 --Zkrátit/odstranit všechny tabulky z databáze SQL Server


Příklad kódu:
Níže uvedený kód lze použít k ukončení všech procesů v databázi. Nemůžeme přejmenovat databázi, pokud k databázi přistupuje jakýkoli proces. Chcete-li přejmenovat, musíme před přejmenováním databáze v SQL Serveru zabít všechny procesy.

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. Jak funguje operátor LIKE v MariaDB

  2. Jak důkladně vyčistit a znovu nainstalovat postgresql na ubuntu?

  3. Změny GI 12.2

  4. připojená databáze je pouze pro čtení