Cursors are the objects those allow us to access the data row by row from result set.
Static Cursor make the copy of result set in memory at time of cursor creation and use that temporary result set to return rows. If any changes are made to original table/s data such as insert, update or delete. The Static cursor does not update stored result set with those changes unless we close the cursor and reopen.
Static Cursors are scrollable (First,Last,Prior,Next,Relative,Absolute)
Script for Static Cursor in SQL Server used in the video as well.
Static Cursor make the copy of result set in memory at time of cursor creation and use that temporary result set to return rows. If any changes are made to original table/s data such as insert, update or delete. The Static cursor does not update stored result set with those changes unless we close the cursor and reopen.
Static Cursors are scrollable (First,Last,Prior,Next,Relative,Absolute)
Script for Static Cursor in SQL Server used in the video as well.
--drop table dbo.Customer
Createtable dbo.Customer (
CustomerId IntIdentity(1,1),
CustomerName VARCHAR(100),
StreetAddress VARCHAr(100),
City VARCHAR(100),
StateCHAR(2))
go
--Insert couple of Records in Sample Table
Insertinto 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
Insertinto dbo.Customer
Select'John Smith','Test Street Address','New York City','NY'
--Delete Records
Deletefrom 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 @StateCHAR(2)
--DECLARE A CURSOR
DECLARE CUR CURSOR
STATIC
FOR
Select CustomerID,CustomerName,StreetAddress,City,Statefrom dbo.Customer
--OPEN CURSOR
OPEN CUR
Print'CURSOR IS OPEN'
--FETCH NEXT RECORD
FETCHNEXTFROM 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)
FETCHNEXTFROM CUR INTO @CustomerID,@CustomerNAme,@StreetAddress,@City,@State
END
CLOSE CUR
DEALLOCATE CUR
Detailed video on Static Cursor in SQL Server.