sql >> Databáze >  >> RDS >> Sqlserver

Typy kurzoru serveru SQL Server – pouze vpřed dynamický kurzor | Kurz SQL Server / Kurz TSQL

Kurzory jsou objekty, které nám umožňují přístup k datům řádek po řádku ze sady výsledků.

Kurzory pouze vpřed neumožňují rolování vzad. Jedinou možností posouvání, kterou máme, je FETCH NEXT.

Pouze vpřed pouze statické kurzory jsou citlivé na jakékoli změny (aktualizace, smazání, vložení) provedené v původním zdroji dat. Pokud budou změny provedeny, budou extrahovány při příštím načtení.


Skript pro dynamický kurzor Forward_Only


--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
Forward_Only 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



Podívejte se na video s podrobnostmi o dynamickém kurzoru pouze vpřed na serveru SQL Server


  1. Vrátit aktuální přihlašovací jméno na SQL Server (T-SQL)

  2. Zkombinujte SQLite Count() se GROUP BY a přidejte do své sady výsledků sloupec „Count“

  3. zobrazení dat z SQL databáze do php/html tabulky

  4. Instalace postgresql s NSIS