Dynamiska markörer kan uppdateras. Den dynamiska markören kommer att hämta ändringarna (infoga, uppdatera eller ta bort) på varje hämtning medan markören är öppen om någon modifiering hände på originaldata i tabeller. Den här typen av markör är användbar när vi vill extrahera poster från originaltabeller medan markören är öppen och vi fortfarande håller på att modifiera data eller infoga nya poster och vill inkludera dem i markörresultatuppsättningen för att utföra operationen.
Dynamiska markörer är rullningsbara (första, sista, föregående, nästa, relativa) men absoluta alternativet fungerar inte med dynamiska markörer.
Skript för dynamisk markör i SQL Server som används i videon också.
--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
Se videon för detaljdemo av dynamiska markörer i SQL Server.