Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/sharepoint/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Tsql MS T-SQL 2008:执行openrowset SQL字符串将不起作用_Tsql_Openrowset - Fatal编程技术网

Tsql MS T-SQL 2008:执行openrowset SQL字符串将不起作用

Tsql MS T-SQL 2008:执行openrowset SQL字符串将不起作用,tsql,openrowset,Tsql,Openrowset,运行此代码 DECLARE@SQL VARCHAR(2500)= 从openrowset(“”“SQLNCLI“”“”,“”“Server=Server;UID=user;PWD=PWD;”中选择z*, ''选择不同的x.PackageName 从[dw].[dbo].[dex]x 在l.executionid=x.SSISExecutionGUID''')z'''上加入[dw].dbo.log l执行(@SQL) 在“选择z”附近发出语法错误* 从openrowset('SQLNCLI','S

运行此代码

DECLARE@SQL VARCHAR(2500)=
从openrowset(“”“SQLNCLI“”“”,“”“Server=Server;UID=user;PWD=PWD;”中选择z*,
''选择不同的x.PackageName
从[dw].[dbo].[dex]x
在l.executionid=x.SSISExecutionGUID''')z'''上加入[dw].dbo.log l执行(@SQL)

在“选择z”附近发出语法错误* 从openrowset('SQLNCLI','Server=Server;UID=user;PWD=pw;', “选择不同的x.PackageN”。

如果我从(@SQL)中删除参数,则错误将更改为:
名称“”选择z*
从openrowset('SQLNCLI','Server=Server;UID=user;PWD=PWD;''中,
''选择不同的x.PackageName
从[dw].[dbo].[dex]x加入[dw].dbo.log l on l.executionid=x.SSISExecutionGUID“”
)z“”不是有效的标识符。

最有趣的是,如果我将Execute更改为Print,然后手动获取打印的结果并将Execute包装在其周围,它将按预期工作并获取结果

我想这是一个疯狂的单引号问题,但我看不出来


有人有什么想法吗?

我只是将打印的输出粘贴到变量赋值中,它似乎起了作用(至少就我所知,它没有给出任何语法错误)


这就是我在我的帖子中说的,它对我也有效。不,你说当你将它粘贴到
EXEC
中时它有效,而不是当你将它粘贴到变量赋值中作为我的答案时执行它!如果我的答案中的代码有效,我真的看不出问题是什么?
DECLARE @SQL VARCHAR(2500) = '
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'

EXECUTE (@SQL)