実行時のステートメントの構築
更新 : 2005 年 12 月 5 日
実行時に SQL ステートメントを動的に構築する必要があるほとんどの Microsoft SQL Server 2005 アプリケーションは、そのステートメントを実行するデータベース API 関数またはメソッドを呼び出される前に SQL ステートメントを構築します。たとえば、ODBC を使用する C 言語のアプリケーションでは、1 つ以上の SQL ステートメントを 1 つの文字配列に動的に構築し、その配列を ODBC の SQLPrepare 関数または SQLExecDirect 関数に渡すことができます。
Transact-SQL では、実行時に Transact-SQL スクリプト、ストアド プロシージャ、およびトリガ内で SQL ステートメントを構築する次の方法がサポートされています。
- Unicode 文字列の実行には、sp_executesql システム ストアド プロシージャを使用します。sp_executesql では、RAISERROR ステートメントと同様のパラメータ置換がサポートされます。
- 文字列の実行には、EXECUTE ステートメントを使用します。EXECUTE ステートメントでは、実行された文字列でパラメータ置換がサポートされません。
セキュリティ メモ : EXECUTE ステートメントを使用して文字列を実行すると、SQL インジェクション攻撃が容易になります。代わりにパラメータを指定して sp_executesql を使用することをお勧めします。
参照
概念
その他の技術情報
SQL インジェクション
sp_executesql (Transact-SQL)
ヘルプおよび情報
変更履歴
リリース | 履歴 |
---|---|
2005 年 12 月 5 日 |
|