Sqlserver
 sql >> Base de données >  >> RDS >> Sqlserver

Types de curseurs SQL Server - Que sont les curseurs statiques dans SQL Server | Tutoriel SQL Server / Tutoriel TSQL

Les curseurs sont les objets qui nous permettent d'accéder aux données ligne par ligne à partir du jeu de résultats.

Le curseur statique fait la copie du jeu de résultats en mémoire au moment de la création du curseur et utilise ce jeu de résultats temporaire pour renvoyer les lignes . Si des modifications sont apportées aux données de la table d'origine, telles que l'insertion, la mise à jour ou la suppression. Le curseur statique ne met pas à jour le jeu de résultats stocké avec ces modifications, sauf si nous fermons le curseur et le rouvrons.

Les curseurs statiques peuvent défiler (premier, dernier, précédent, suivant, relatif, absolu)

Script pour le curseur statique dans SQL Server également utilisé dans la vidéo.

--drop table dbo.CustomerCreate 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 TableInsert into dbo.CustomerSelect 'Aamir shahzad','Test Street Address' ,'Charlotte','NC'Union Select 'M Raza','Test Street Address','Charlotte','NC'Select * from dbo.Customer--Insert NEW RecordInsert into dbo.CustomerSelect 'John Smith','Test Adresse postale','New York City','NY'--Supprimer les enregistrementsDelete from dbo.CustomerWhere CustomerName in ('Aamir Shahzad','M Raza')--Mettre à jour tous les enregistrementsMise à jour dbo.Customerset CustomerName='NO NAME'-- Curseur ScriptDeclare @IDClient INTDeclare @NomClient VARCHAR (1 00)DECLARE @StreetAddress VARCHAR(100)DECLARE @City VARCHAR(100)DECLARE @State CHAR(2)--DECLARE A CURSORDDECLARE CUR CURSORSTATICFORSelect CustomerID,CustomerName,StreetAddress,City,State from dbo.Customer--OPEN CURSOROPEN CURPrint 'CURSOR EST OUVERT'--FETCH NEXT RECORDFETCH NEXT FROM CUR INTO @CustomerID,@CustomerNAme,@StreetAddress,@City,@StateWHILE @@FETCH_STATUS=0BEGIN RAISERROR ('',0,1) WITH NOWAITWAITFOR DELAY '00:00:15' PRINT CONCAT(@CustomerID,' ',@CustomerName,' ',@StreetAddress,' ',@City,' ',@State)FETCH NEXT FROM CUR INTO @CustomerID,@CustomerNAme,@StreetAddress,@City,@StateENDCLOSE CURDEALLOCATE CUR
 
 
 
Vidéo détaillée sur Static Cursor dans SQL Server.