テーブルからリンクサーバー変数を読み込むように変換する必要があるストアドプロシージャがあります。私が知っているから、そうする唯一の方法は動的SQLを使うことです。問題は、私のクエリを変換することに失敗していることです。リンクサーバー変数を使用してクエリを動的SQLに変換する
オリジナルクエリ:
SET @var1 = ''
SELECT @var1 = RECEIVER
FROM databse1.dbo.table1
WHERE SAPNUMBER = @var2
変換されたクエリ:
SET @srv = (SELECT server_name
FROM Configuration.dbo.Server_Switch)
SET @var1 = ''
exec (
'SELECT ' + @var1 + '= RECEIVER
FROM ' + @srv + '.databse1.dbo.table1
WHERE SAPNUMBER =' + @var2
)
私は取得していますエラーは次のとおりです。
Incorrect syntax near '='
VAR1と@ VAR2 @は、事前に宣言された変数です。私はかなり動的SQLのこれらの変数に値を割り当てることに問題があると確信しているので、 '='エラーです。このクエリの変換に何か助けてもらえますか?
?それができる唯一のことは、問題の可能性を高めることでした。誰かが 'Server_Switch'テーブルに' Bobby Tables'を保存したとしたらどうでしょう...。 –