My Developer Memo
開発に関する覚え書き
Latest Entries
Recent Comments
Search this site
Categories
Archives
Links
Syndicate this site
RSS1.0
Atom0.3
Powered by
Serene Bach 2.24R
<< Windows Update エラー 80072efd
|
main
|
[MEMO]既定の「applicationHost.config」 >>
2011/05/31 (火)
●
T-SQL で動的SQLによるバインド変数
/* SQLインジェクション対策 バインドメカニズムを使用した動的SQL組立て時のT-SQL実行手順 */ --パラメータ定義 DECLARE @ShainCD NVARCHAR(500); DECLARE @ShainNM NVARCHAR(500); DECLARE @SQLString NVARCHAR(500); DECLARE @ParmDefinition NVARCHAR(500); DECLARE @condition int; /* 条件(0/1)をセットし、SQL文のWhere条件を切替える*/ SET @condition = 1; /* SQL文の動的組み立て*/ SET @SQLString = N'SELECT * FROM M_SHAIN WHERE 1 = 1'; IF @condition = 1 BEGIN SET @SQLString = @SQLString + ' AND SHAIN_NM LIKE @社員名'; END /* SQLのパラメータ定義 SQL文の構造にかかわらず、すべてのパラメータ定義を行う パラメータ定義は順不同です */ SET @ParmDefinition = N'@社員名 varchar(20),@社員CD varchar(20)'; /* 検索条件をセット*/ SET @ShainCD = '99999'; SET @ShainNM = N'%営業%'; /* SQL文の構造にかかわらず、すべてのパラメータを引数に渡す。存在しないパラメータは無視されます。 */ EXECUTE sp_executesql @SQLString , @ParmDefinition , @社員CD = @ShainCD , @社員名= @ShainNM;