Запуск этого кода
DECLARE @SQL VARCHAR(2500) =
'''SELECT z.* from openrowset(''''SQLNCLI'''',''''Server=server;UID=user;PWD=pwd;'''',
''''SELECT distinct x.PackageName
FROM [dw].[dbo].[dex] x<br>
JOIN [dw].dbo.log l on l.executionid = x.SSISExecutionGUID '''') z''' EXECUTE (@SQL)
Выдает синтаксическую ошибку Incorrect syntax near 'select z.*
from openrowset('SQLNCLI', 'Server=server;UID=user;PWD=pw;',
'SELECT distinct x.PackageN'.
, если я удаляю парены из (@SQL) ошибка изменится на это: The name ''select z.*
from openrowset(''SQLNCLI'', ''Server=server;UID=user;PWD=pwd;'',
''SELECT distinct x.PackageName
FROM [dw].[dbo].[dex] x join [dw].dbo.log l on l.executionid = x.SSISExecutionGUID ''
) z'' is not a valid identifier.
и самое смешное, если я переключу «Выполнить на печать», затем вручную возьму напечатанный результат и оберну вокруг него «ВЫПОЛНИТЬ», он будет работать, как ожидалось, и получит мои результаты.
Я думаю, что это какая-то сумасшедшая проблема с одинарными кавычками, но я не вижу ее.
У кого-нибудь есть идеи?