SQLServerのストアドで、カーソルを使ってループするサンプルです。
サンプル
例)カーソルを使ってsys.tablesをSELECTする
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 |
--変数定義 DECLARE @name varchar(100) DECLARE @objectid int --カーソルを定義する DECLARE cur CURSOR FOR SELECT name, object_id FROM sys.tables --カーソルを開く OPEN cur --次のレコードを取得する FETCH NEXT FROM cur INTO @name, @objectid --レコードが存在する間ループする WHILE @@FETCH_STATUS = 0 BEGIN --取得した値を表示する print @name print @objectid --次のレコードを取得する FETCH NEXT FROM cur INTO @name, @objectid END --カーソルを閉じる CLOSE cur DEALLOCATE cur |
備考
- カーソルを使い終わったら必ずCLOSEとDEALLOCATEを忘れずに行ってください。
(上記サンプルの29行目と30行目)