Dynamische Cursor sind aktualisierbar. Der dynamische Cursor ruft die Änderungen (Einfügen, Aktualisieren oder Löschen) bei jedem Abruf ab, während der Cursor geöffnet ist, wenn Änderungen an den Originaldaten in Tabelle/n vorgenommen wurden. Diese Art von Cursor ist hilfreich, wenn wir die Datensätze aus der/den ursprünglichen Tabelle/n extrahieren möchten, während der Cursor geöffnet ist, und wir noch dabei sind, Daten zu ändern oder neue Datensätze einzufügen, und sie in die Cursor-Ergebnismenge aufnehmen möchten, um die Operation auszuführen.
Dynamische Cursor sind scrollbar (Erster, Letzter, Vorheriger, Nächster, Relativer), aber absolut Option funktioniert nicht mit dynamischen Cursorn.
Skript für dynamische Cursor in SQL Server, das auch im Video verwendet wird.
--drop table dbo.Customer Create 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 Table Insert into dbo.Customer Select 'Aamir shahzad','Test Street Address','Charlotte','NC' Union Select 'M Raza','Test Street Address','Charlotte','NC' Select * from dbo.Customer --Insert NEW Record Insert into dbo.Customer Select 'John Smith','Test Street Address','New York City','NY' --Delete Records Delete from dbo.Customer Where CustomerName in ('Aamir Shahzad','M Raza') --Update All Record Update dbo.Customer set CustomerName='NO NAME' --Cursor Script Declare @CustomerID INT Declare @CustomerNAme VARCHAR (100) DECLARE @StreetAddress VARCHAR(100) DECLARE @City VARCHAR(100) DECLARE @State CHAR(2) --DECLARE A CURSOR DECLARE CUR CURSOR DYNAMIC FOR Select CustomerID,CustomerName,StreetAddress,City,State from dbo.Customer --OPEN CURSOR OPEN CUR Print 'CURSOR IS OPEN' --FETCH NEXT RECORD FETCH NEXT FROM CUR INTO @CustomerID,@CustomerNAme,@StreetAddress,@City,@State WHILE @@FETCH_STATUS=0 BEGIN RAISERROR ('',0,1) WITH NOWAIT WAITFOR DELAY '00:00:15' PRINT CONCAT(@CustomerID,' ',@CustomerNAme,' ',@StreetAddress,' ',@City,' ',@State) FETCH NEXT FROM CUR INTO @CustomerID,@CustomerNAme,@StreetAddress,@City,@State END CLOSE CUR DEALLOCATE CUR
Bitte sehen Sie sich das Video für eine detaillierte Demo dynamischer Cursor in SQL Server an.