Her er trinene, hvordan du skriver en markør
1-Erklærer en markør ved at ved hjælp af navnet på markøren med en Select-sætning
2- Åbn markøren for at udfylde med output fra Select-sætningen
3- Hent rækkerne for at behandle dem én efter én
4- Luk markøren
5- De-allokér markør
Vi støder på forskellige situationer, hvor vi kan bruge markører. Nedenfor er nogle eksempler, hvor vi kan bruge markører
Eksempler:
1-- Dræb alle forbindelser fra en SQL Server-database
2-- Tilføj en ny kolonne såsom CreatedBy til alle tabellerne i en database
3--Aktiver/deaktiver alle triggere i en SQL Server-database
4--Generer scripts/Tag backup af alle databaser på SQL Server én efter én
5 --Truncate/Delete alle tabellerne fra en SQL Server-database
Eksempelkode:
Nedenstående kode kan bruges til at dræbe alle processerne til en database. Vi kan ikke omdøbe en database, hvis en proces har adgang til databasen. For at omdøbe skal vi dræbe alle processerne, før vi omdøber databasen i 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