MSDE FunClub 現在までのアクセスカウント数 最終更新日 : 2000/08/18
Microsoft Data Engine FunClub
Since 2000.08.18
SQLServer7.0/MSDE 完全トレーニングテキスト(上巻)
【第7章418p 〜 419p掲載】

-- [SQL07_04.SQL]
--             SQLServer7.0  Transact-SQL言語
--             日本技術ソフト開発  堀川 明
--            http://www.horikawa.ne.jp/msde/
--
-- このSQLプログラムは、静的カーソルを使った
--                       FETCH NEXT 
-- の実行例です
--

-- カレントデータベースを MySampleTest にする
    USE MySampleTest
GO

-- (件処理されました)のメッセージを抑止する
    SET NOCOUNT ON
GO

    -- 作業用変数の定義
    DECLARE @total int , @cnt int
    DECLARE @社員コード int
    DECLARE @氏名 varchar(40)

    -- 静的なローカルカーソルを定義します
    -- 静的なので、カーソルを開いた後の結果セット内の行数に増減はありません
    -- しかし実際のテーブル側では、他ユーザによってレコードが削除されることがある
    -- カーソルの結果セットの内容と現実の内容に食い違いが起こることがある
    DECLARE My_cur CURSOR  LOCAL SCROLL STATIC
    FOR SELECT 社員コード,氏名 FROM MySampleTest..社員 
        ORDER BY 社員コード

    -- ローカルカーソルを開く
    OPEN My_cur

    -- 結果セットの行数を取得する
    SET @total = @@CURSOR_ROWS
    PRINT '結果セット内のレコード総数 = ' + CAST( @total as varchar )

    -- 正の値のときは、結果セットがあります
    IF( @total > 0 )
         BEGIN
                SET @cnt = 0
                -- 結果セットを1行づつ取得する
                WHILE( @cnt <> @total )
                    BEGIN
                          -- 1行進めて、その内容を取得
                          -- このカーソルは、STATIC です
                          FETCH NEXT FROM My_cur INTO  @社員コード,@氏名

                          SET @cnt = @cnt + 1

                          PRINT CAST( @cnt as char(2) ) + ':' +
                                CAST( @社員コード as char(4) ) + @氏名
                    END
         END

    -- カーソルを閉じる
    CLOSE My_cur

    -- 参照関係を解除する
    DEALLOCATE My_cur
GO




技術評論社の書籍ガイドへ
上巻:ISBN4-7741-0965-7

ウィンドウを閉じる


(株)日本技術ソフト開発 責任編集:堀川 明
MSDE FunClubに関するご意見・ご要望等ございましたら、 msdefun@horikawa.ne.jp までご連絡下さい。
HOME: http://www.horikawa.ne.jp/msde/


MSDE FunClubの運営は、マイクロソフト社とは一切の関係はありません