У меня есть хранимая процедура, которую мне нужно преобразовать, чтобы она считывала связанную переменную сервера из таблицы. Из того, что я знаю, единственный способ сделать это - использовать динамический 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, следовательно, ошибка '='. Могу ли я получить некоторую помощь в преобразовании этого запроса?
Почему вы думаете, что динамический SQL будет решить любую проблему вообще? Единственное, что он мог бы сделать, это увеличить вероятность проблем. Представьте, если кто-то сохранил «Таблицы Бобби» в этой таблице «Server_Switch» ... –