- - PR -
動的SQL文
1
投稿者 | 投稿内容 |
---|---|
|
投稿日時: 2008-06-03 17:03
こんにちは。
動的SQL文の書き方を教えて下さい。 SQLServer2005で パラメータで受け取った部課の変数を元に 動的SQL文を作成したいのですが varchar の値 '@BCD' をデータ型 int に変換できませんでした。 のエラーになってしまいます。 1 @JKN varchar(100)の宣言 2 パラメータ@BCDを元に条件作成 SET @JKN = 'AND cyu.BCD = ''@BCD''' 3 動的SQL EXEC(' SELECT * FROM A WHERE ' + @JKN + ' ) という具合ですが2でエラーになります。 わかる方よろしくお願いします。 |
|
投稿日時: 2008-06-04 00:02
@BCDの型が提示されていないので、推測になってしまいますが…
@BCDがint型で定義されているのであれば、それが原因です。 文字列と数値を結合する場合、数値を文字列に変換する必要があります。 型変換には、CASTやCONVERT関数を使います。 2の部分を以下に置き換えてみて下さい。 SET @JKN = 'AND cyu.BCD = ' + CAST(@BCD AS varchar) SET @JKN = 'AND cyu.BCD = ' + CONVERT(varchar, @BCD) 文字列と数字の結合だけを確認するなら、以下のコードで確認できますよ。 DECLARE @BCD DECLARE @JKN @BCD = 10 SET @JKN = 'A = ' + CAST(@BCD AS varchar) PRINT @JKN |
|
投稿日時: 2008-06-04 11:19
ふりっつさん、ありがとうございます。
助かりました。 |
1