SQL Server

SQLServerでカーソルを使う方法

投稿日:2018/10/01 更新日:

SQLServerではプログラム内でカーソルを利用するとテーブル内に保存されている複数行のデータを簡単にプログラムで扱えるようになります。

今回はカーソルの宣言から使い方、後始末までを解説します。

SQLServerのカーソル文

SQLServerにはプログラム内でテーブルに保存されている複数行のデータをSELECT文で取得することで簡単に扱えるようにするために「CURSOR型」が用意されています。

この「CURSOR型」を使うにはちょっとした「お決まり」があるので、以下にその「お決まり」を解説します。

カーソルの宣言

カーソルは普通の変数と同様に宣言する必要があります。

宣言の方法は以下のように「CURSOR型」の変数を宣言します。

カーソルとSELECT文との関連付け

カーソルはSELECT文と関連付けて、そのSELECTの結果をプログラムで利用できるようにするものです。

ですから、カーソルはSELECT文と関連付ける必要があります。

これでSELECT文がカーソル変数と関連付けされました。

カーソルのオープン

カーソルはファイルと同じように利用する前に明示的に「OPEN」する必要があります。

OPEN命令でオープンしたいカーソル名を指定します。

SELECT文の取得(FETCH)

カーソルと関連付けたSELECT文の結果を変数へ代入するには「FETCH」を利用します。

FECTHはどのカーソルから何という変数へデータを代入するのか指定します。

カーソルには関連付けされたSELECT文の結果が複数行設定されているので、FETCHを繰り返すことで1行ずつ取り出すことができます。

SQLServerではFECTHの終了を判断(最後の行を取得したかどうか)するのに「@@FETCH_STATUS」という関数が用意されているので、これを使って最後の行まで1行ずつ取得します。

最終行を取得後FECTHを行うと@@FETCH_STATUSが1を返してくるので、それまでループして処理を行います。

カーソル処理の後始末

カーソル処理はファイル処理などと同じ様に、利用したカーソルをクローズして、メモリ上から解放してやる必要があります。

カーソルをクローズするには「CLOSE」、メモリ上から解放するには「DEALLOCATE」を利用して行います。

まとめ

カーソルを利用するとプログラム内で複数行選択できるデータを簡単に扱えるようになります。

最後に今回の処理をまとめておきます。

以上、「SQLServerでカーソルを使う方法」でした。

スポンサーリンク

当サイトのおすすめ記事

パソコン 1

初心者でも失敗しないレンタルサーバーの選び方ですが、最近ではブログを立ち上げて、そこから広告収入を得る「アフィリエイト」が随分一般的になりました。 私の周りでも実際にやっている人が多くいます。 アフィ ...

プログラミング 2

SQLでIFを書けばWHERE句の内容を変えて検索できますが、条件ごとに同じようなSQLを 複数回書くのは面倒なので、1行で分岐できないかと言う事でSQLを作って見ました。 SQLでIFを使わずに条件 ...

SQLServer 3

SQLServerで発生するエラーコードをSQLで取得する SQLServerで発生したエラーコードの内容を メッセージが定義されているテーブルから取得します。 エラーコードを取得するSQL SQLs ...

4

SQLServerでは「ユーザー定義型」と呼ばれる独自のテーブル型をした戻り値を返す関数を作成することができます。 その作り方と使い方を解説します。 SQLServerでテーブル型を戻り値とする関数を ...

5

アフィリエイトでいきなり成果を出すのは難しいです。 でも、成果がないとレンタルサーバー代やドメイン代がペイできません。 しかも長い間、結果がでないとやる気もなくなってしまいます。 そういったことを防ぐ ...

-SQL Server
-,

Copyright© ソフトウェア開発日記 , 2018 All Rights Reserved.