Sqlserver
 sql >> Base de Dados >  >> RDS >> Sqlserver

Tipos de cursor do SQL Server - Cursor estático somente para frente | Tutorial SQL Server / Tutorial TSQL

Cursores são os objetos que nos permitem acessar os dados linha por linha do conjunto de resultados.

Forward Only Os cursores não permitem a rolagem para trás. A única opção de rolagem que temos é FETCH NEXT.


Forward only Os cursores estáticos não são sensíveis a quaisquer alterações (atualizar, excluir, inserir) feitas na fonte de dados original após a criação do cursor.

Script para Cursor Estático Forward_Only
--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--Inserir alguns registros na tabela de amostraInsert into dbo.CustomerSelect 'Aamir shahzad','Test Street Address','Charlotte','NC'Union Select ' M Raza','Testar endereço de rua','Charlotte','NC'Selecione * de dbo.Customer--Insert NEW RecordInsert into dbo.CustomerSelect 'John Smith','Test Street Address','New York City',' NY'--Delete RecordsDelete from dbo.CustomerWhere CustomerName in ('Aamir Shahzad','M Raza')--Update All RecordUpdate dbo.Customerset CustomerName='NO NAME'--Cursor ScriptDeclare @CustomerID INTDeclare @CustomerName VARCHAR (100) DECLARE @StreetAdd ress VARCHAR(100)DECLARE @City VARCHAR(100)DECLARE @State CHAR(2)--DECLARE A CURSORDECLARE CUR CURSORForward_Only StaticFORSelect CustomerID,CustomerName,StreetAddress,City,State from dbo.Customer--OPEN CURSOROPEN CURPrint 'CURSOR IS OPEN' --FETCH NEXT RECORDFETCH NEXT FROM CUR INTO @CustomerID,@CustomerNAME,@StreetAddress,@City,@StateWHILE @@FETCH_STATUS=0BEGIN RAISERROR ('',0,1) COM NOWAITWAITFOR DELAY '00:00:15'PRINT CONCAT( @CustomerID,' ',@CustomerNAME,' ',@StreetAddress,' ',@City,' ',@State)FETCH NEXT FROM CUR INTO @CustomerID,@CustomerNAME,@StreetAddress,@City,@StateENDCLOSE CURDEALLOCATE CUR 


Assista ao vídeo de demonstração Como o Forward Only Static Cursors funciona no SQL Server.