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.