У меня есть таблица, в которой хранятся SQL-запросы. Я читаю это и выполняю его, используя EXECUTE sp_executesql
. Мне было интересно, если я хочу изменить этот запрос, как я могу это сделать?Как изменить динамический запрос в SQL Server?
Если я должен добавить переменную в конце концов, я могу сделать что-то вроде этого:
DECLARE @sql1 NVARCHAR(MAX), @var NVARCHAR(20)
SET @sql1 = (SELECT Query FROM Table WHERE ID = 123)
SET @var = ' AND CONDITION2'
PRINT @sql1 + @var
Результат:
UPDATE Table SET VALUE1 WHERE CONDITION1 AND CONDITION2
Но если я хочу добавить что-то между ними, I» Не знаю, как это сделать.
Запрос:
DECLARE @sql NVARCHAR(MAX)
SET @sql = (SELECT Query FROM Table WHERE ID = 123)
PRINT @sql
Фактический результат:
UPDATE Table SET VALUE1 WHERE CONDITION1
Ожидаемое:
UPDATE TOP (100) Table SET VALUE1 WHERE CONDITION1
Без какой-либо фактические данные никто другой знает, как сделать это либо. В основном потому, что мы понятия не имеем, что вы пытаетесь сделать. Вы должны начать с определения таблиц и выборочных данных. Затем включите то, что вы пытаетесь сделать. –