sql >> データベース >  >> RDS >> Sqlserver

SQLServerのカーソルタイプ-SQLServerの静的カーソルとは| SQLServerチュートリアル/TSQLチュートリアル

    カーソルは、結果セットから行ごとにデータにアクセスできるようにするオブジェクトです。

    静的カーソルは、カーソルの作成時にメモリ内の結果セットのコピーを作成し、その一時的な結果セットを使用して行を返します。 。挿入、更新、削除など、元のテーブルのデータに変更が加えられた場合。静的カーソルは、カーソルを閉じて再度開くまで、保存された結果セットをこれらの変更で更新しません。

    静的カーソルはスクロール可能です(First、Last、Prior、Next、Relative、Absolute)

    ビデオでも使用されているSQLServerの静的カーソルのスクリプト。

    --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
     
     
     
    SQLServerの静的カーソルに関する詳細なビデオ。

    1. v4.0.0以降、方言を明示的に指定する必要があります

    2. コンテンツプロバイダーでのAndroid投影マップの目的は何ですか?

    3. UnicodeEncodeError:'latin-1'コーデックは文字をエンコードできません

    4. LinuxでSQLServer認証データベースを使用してSolarWindsServ-Uを使用する