MSDE FunClub | 最終更新日 : 2000/08/18 | |
Microsoft Data Engine FunClub |
|
|
SQLServer7.0/MSDE 完全トレーニングテキスト(上巻) | ||
【第7章420p 〜 421p掲載】 |
-- [SQL07_05.SQL] -- SQLServer7.0 Transact-SQL言語 -- 日本技術ソフト開発 堀川 明 -- http://www.horikawa.ne.jp/msde/ -- -- このSQLプログラムは、動的カーソルを使った -- FETCH NEXT -- の実行例です -- 動的カーソルではレコード数に変化があります -- -- カレントデータベースを MySampleTest にする USE MySampleTest GO -- (件処理されました)のメッセージを抑止する SET NOCOUNT ON GO -- 作業用変数の定義 DECLARE @cnt int DECLARE @社員コード int DECLARE @氏名 varchar(40) SET @cnt = 0 -- 動的なローカルカーソルを定義します -- 動的カーソルは、結果セット内の行数に変化が起こります DECLARE My_cur CURSOR LOCAL SCROLL DYNAMIC FOR SELECT 社員コード,氏名 FROM MySampleTest..社員 ORDER BY 社員コード -- ローカルカーソルを開く OPEN My_cur -- 先頭レコードの取得に成功ですか? FETCH NEXT FROM My_cur INTO @社員コード,@氏名 -- @@FETCH_STATUS外部変数が=0の間は、レコード取得に成功 WHILE( @@FETCH_STATUS = 0 ) BEGIN -- 取得したレコード数を数えます SET @cnt = @cnt + 1 -- その内容を出力します PRINT CAST( @cnt as char(2) ) + ':' + CAST( @社員コード as char(4) ) + @氏名 -- 次のレコードを取得する FETCH NEXT FROM My_cur INTO @社員コード,@氏名 END PRINT '結果セット内の表示したレコード総数 = ' + CAST( @cnt as varchar ) -- カーソルを閉じる CLOSE My_cur -- 参照関係を解除する DEALLOCATE My_cur GO