Sqlserver
 sql >> Base de données >  >> RDS >> Sqlserver

Types de curseur SQL Server - Curseur statique vers l'avant uniquement | Tutoriel SQL Server / Tutoriel TSQL

Curseurs sont les objets qui nous permettent d'accéder aux données ligne par ligne à partir du jeu de résultats.

Les curseurs avant uniquement ne permettent pas le défilement vers l'arrière. La seule option de défilement que nous avons est FETCH NEXT.


Les curseurs statiques avant uniquement ne sont pas sensibles aux modifications (mise à jour, suppression, insertion) apportées à la source de données d'origine après la création du curseur.

Script pour Forward_Only Static Cursor
--drop table dbo.CustomerCreate table dbo.Customer ( CustomerId Int Identity(1,1),CustomerName VARCHAR(100),StreetAddress VARCHAr( 100),City VARCHAR(100),State CHAR(2))go--Insert couple of Records in Sample TableInsert into dbo.CustomerSelect 'Aamir shahzad','Test Street Address','Charlotte','NC'Union Select ' M Raza','Test Street Address','Charlotte','NC'Select * from dbo.Customer--Insert NEW RecordInsert into dbo.CustomerSelect 'John Smith','Test Street Address','New York City',' NY'--Delete RecordsDelete from dbo.CustomerWhere CustomerName in ('Aamir Shahzad','M Raza')--Update All RecordUpdate dbo.Customerset CustomerName='NO NAME'--Cursor ScriptDeclare @CustomerID INTDeclare @CustomerNAme VARCHAR (100) DÉCLARER @StreetAdd ress VARCHAR(100)DECLARE @City VARCHAR(100)DECLARE @State CHAR(2)--DECLARE A CURSORDECLARE CUR CURSORForward_Only StaticFORSelect CustomerID,CustomerName,StreetAddress,City,State from dbo.Customer--OPEN CURSOROPEN CURPrint 'CURSOR IS OPEN' --FETCH NEXT RECORDFETCH NEXT FROM CUR INTO @CustomerID,@CustomerNAme,@StreetAddress,@City,@StateWHILE @@FETCH_STATUS=0BEGIN RAISERROR ('',0,1) WITH NOWAITWAITFOR DELAY '00:00:15'PRINT CONCAT( @CustomerID,' ',@CustomerNAme,' ',@StreetAddress,' ',@City,' ',@State)FETCH NEXT FROM CUR INTO @CustomerID,@CustomerNAme,@StreetAddress,@City,@StateENDCLOSE CURDEALLOCATE CUR 


Regardez la vidéo de démonstration du fonctionnement des curseurs statiques vers l'avant uniquement dans SQL Server.