ストアドプロシージャ

[SQLServer] 動的SQLでSELECTした結果を変数にセットする(sp_executesql)

SQLServerで、動的SQLでSELECTした結果を変数にセットするサンプルです。
sp_executesqlを使用します。

構文

(sp_executesql構文)
sp_executesql <SQL>, <パラメータ定義>, <パラメータ設定>
【引数の説明】
引数説明
<SQL>実行するSQL文の文字列を指定する
※nvarchar型を使用する必要あり。
<パラメータ定義>SQL文中で使用するパラメータの定義を文字列で指定する
※nvarchar型を使用する必要あり。
<パラメータ設定>定義したパラメータの設定を行う
(IN用パラメータなら値の代入、OUT用パラメータならOUTPUTとして宣言)

サンプル

例として以下のテーブルを使用します。

【M_USERテーブル】
codenameage
101織田信長47
102豊臣秀吉61
103徳川家康73

例1)動的SQLで結果を変数にセットする例

(結果)
織田信長 47

例2)動的SQLで結果を変数にセットする例(INパラメータも使用)

(結果)
豊臣秀吉 61

備考

  • 複数件SELECTされた場合でもエラーにはならずに最初の1件の値が変数にセットされます。

関連記事


-ストアドプロシージャ
-,