sql >> Database >  >> RDS >> Sqlserver

SQL Server-cursortypen - Wat zijn statische cursors in SQL Server | SQL Server-zelfstudie / TSQL-zelfstudie

Cursors zijn de objecten waarmee we rij voor rij toegang hebben tot de gegevens uit de resultaatset.

Statische cursor maakt de kopie van de resultaatset in het geheugen op het moment dat de cursor wordt gemaakt en gebruikt die tijdelijke resultaatset om rijen terug te geven . Als er wijzigingen worden aangebracht in de oorspronkelijke tabel(len), zoals invoegen, bijwerken of verwijderen. De statische cursor werkt de opgeslagen resultatenset niet bij met die wijzigingen, tenzij we de cursor sluiten en opnieuw openen.

Statische cursors kunnen worden verschoven (First,Last,Prior,Next,Relative,Absolute)

br />Script voor statische cursor in SQL Server dat ook in de video wordt gebruikt.

--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
STATIC
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
 
 
 
Gedetailleerde video over statische cursor in SQL Server.

  1. databasebestand kopiëren van /assets naar /data/datamap in bestandsverkenner - Android

  2. Functie uitvoeren in Oracle met parameters

  3. Hoe krijg ik psycopg2-registratie van de uitvoeringstijd van de query?

  4. Hoe rangschikkingsposities aan rijen toe te voegen met DENSE_RANK() in SQL