Я запрашивая связанный сервер:Фильтр записи из результата OpenQuery
DECLARE @result nvarchar(max);
SET @Sql = N'
SELECT *
FROM OPENQUERY(DATABASE_' + UPPER(@Environment) + ', ''
Complex Query against the linked server...
'');'
EXECUTE sp_executesql @sql, @result OUTPUT
Перед установкой результатов в правильную таблицу я должен отфильтровать некоторые строки результатов. Я не могу отфильтровать их в исходном запросе, потому что результаты должны сопоставляться с значениями в целевой таблице.
Что-то вроде:
INSERT INTO targetTable
SELECT * FROM @result AS r
WHERE r.Col1 NOT IN (SELECT Col1 FROM targetTable)
AND r.Col2 NOT IN (SELECT Col2 FROM targetTable)
Я не могу использовать переменную @results
для запроса из, потому что это не таблица.
Как это сделать?
привет, спасибо за ответ. Вы уверены в «EXECUTE sp_executesql @sql» в переменной @sql? Я вывожу его снаружи, но я получаю «Должен объявить переменную таблицы @tmpTable». если я попытаюсь запросить «SELECT * FROM @tmpTable;». – Mario