我可以在OPENROWSET查询中使用SQLOLEDB提供程序从sql2005到sql2008吗?
SELECT * FROM OPENROWSET ('SQLOLEDB','[servername]';'login';'pw', 'set fmtonly off EXEC DB.dbo.SP 6,1,''B20121110'' ')
谢谢
是的,OpenRowset方法在SQL Server 2008中工作,SQL Server 2005将接受与SQLOLEDB提供者的连接。
您需要启用Ad Hoc Distributed Queries才能允许这种types的访问(在源服务器上)。 请注意这是一个安全风险,这篇文章强调了这个风险。 该链接还显示了如何启用此选项,我不分享这里的代码,所以你可以自己阅读警告。
根据您正在尝试执行的操作,这可能不是从目标服务器获取数据的最佳方式。 通过SSIS中的ETL过程,您可能会更好地从该服务器向您的服务器加载数据,在从各个源获取数据的应用程序中执行一些工作等。您还可以创build和定义一个链接的服务器以用于连接到另一个SQL Server,但是链接服务器的一些问题(一些安全问题,一些运行远程查询的性能问题以及来回发送数据和join跨服务器等)。