SQLOLEDB 从 sql2005 到 sql2008?

SQLOLEDB 从 sql2005 到 sql2008?

我可以在从 sql2005 到 sql2008 的 OPENROWSET 查询中使用 SQLOLEDB 提供程序吗?

SELECT * FROM OPENROWSET ('SQLOLEDB','[servername]';'login';'pw',
      'set fmtonly off 
      EXEC DB.dbo.SP 6,1,''B20121110'' ')

谢谢

答案1

是的,OpenRowset 方法在 SQL Server 2008 中确实有效,并且 SQL Server 2005 将接受与 SQLOLEDB 提供程序的连接。

不过,您需要启用Ad Hoc Distributed Queries才能允许此类访问(在您的源服务器上)。请注意,这是一个安全风险,并且这文章突出显示了该风险。该链接还向您展示了如何启用此选项,我不会在这里分享代码,因此您可以自己阅读警告。

根据您要执行的操作,这可能不是从目标服务器获取数据的最佳方式。您最好通过 SSIS 中的 ETL 过程将数据从该服务器加载到您的服务器,在应用程序中执行从每个源获取数据的一些工作等。您还可以创建和定义链接服务器以用于连接到其他 SQL Server,但链接服务器存在一些问题(一些安全问题、运行远程查询和来回发送数据以及连接跨服务器时的一些性能问题等)。

相关内容