Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

SQL Server-Cursortypen – Nur vorwärts gerichteter statischer Cursor | SQL Server-Tutorial / TSQL-Tutorial

Cursor sind die Objekte, die es uns ermöglichen, auf die Daten Zeile für Zeile aus der Ergebnismenge zuzugreifen.

Nur Vorwärts-Cursor erlauben kein Rückwärts-Scrollen. Die einzige Bildlaufoption, die wir haben, ist FETCH NEXT.


Nur vorwärts Statische Cursor reagieren nicht auf Änderungen (aktualisieren, löschen, einfügen), die an der ursprünglichen Datenquelle vorgenommen werden, nachdem der Cursor erstellt wurde.

Skript für 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--Einige Datensätze in Beispieltabelle einfügenIn dbo einfügen. KundeWählen Sie „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'--Datensätze löschenDelete from dbo.CustomerWhere CustomerName in ('Aamir Shahzad','M Raza')--Alle Datensätze aktualisierenUpdate dbo.Customerset CustomerName='NO NAME'--Cursor ScriptDeclare @CustomerID INTDeclare @CustomerName VARCHAR (100) DECLARE @StreetAdd drücken 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 RECORDNEXT FROM CUR IN @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 


Sehen Sie sich das Video an, um zu sehen, wie Forward Only Static Cursors in SQL Server funktionieren.