次のSQLサーバーで立ち往生しています:
DECLARE @sql AS NVARCHAR(500),@db as varchar(50),@value AS CHAR(129);
SET @db = 'SSCT1';
SET @value = '1806-11-801-1000';
SET @sql = 'SELECT ACTINDX FROM ' + quotename(@db)
+ '.[dbo].[GL00105] WHERE ACTNUMST = ' + @value;
EXEC (@sql);
これをSQLサーバーで実行すると、次のようになります:varchar値を変換するときに変換に失敗しました '1806-11-801-1000
where句を使用しているフィールドを確認しましたが、宣言のタイプ(char(129))と一致するため、何を変換しようとしているのかわかりません。
値に加えて変数としてデータベース名を受け入れる SQL ステートメントを作成しようとしています。何かご意見は?
ありがとう