SQL Server OpenQuery to Exec命令

时间:2015-09-16 15:52:50

标签: sql-server

以下查询在SQL Server 2008 R2中正常工作

select * 
from openquery(LinkedServerName, 'exec databaseName.dbo.SP_GET_INFO');

我试图使用exec命令转换它,但没有运气。

例如:

exec ('call databaseName.dbo.SP_GET_INFO') at LinkedServerName

此消息始终出现语法错误:

  

无法在远程服务器' LinkedServerName'

上执行语句

感谢。

1 个答案:

答案 0 :(得分:0)

感谢@ lad2025的大力帮助。

使用以下脚本将起作用:

exec ('databaseName.dbo.SP_GET_INFO') at LinkedServerName

我第一次测试代码时因为我用来创建链接服务器的驱动程序而无法正常工作。 我使用“Microsoft OLE DB Provider for ODBC Drivers”。有了这个,我得到了错误:

  

链接服务器“(null)”的OLE DB提供程序“STREAM”返回消息...

原因是因为在存储过程中我对具有空值的nText列进行了选择。

因此,我将驱动程序更改为“Microsoft OLE DB Provider for SQL Server”,脚本运行正常。

希望这有助于其他人。