2015-04-26 61 views
2

说我有一个存储过程,从另一个数据库这样的另一台服务器上获取数据:检索来自远程服务器的数据

SELECT * FROM [DatabaseServer].[DatabaseName].dbo.dbPerson 

我可以设置链接服务器和它的作品,我会期望。有没有办法在存储过程中连接到远程服务器而不创建链接服务器,即通过指定连接字符串以及连接的用户名和密码?

我知道我可以用SSIS来做到这一点。如果在存储过程中有可能,我会漫游。

+0

阅读[OPENDATASOURCE(https://msdn.microsoft.com/ EN-US /库/ ms179856.aspx)。 –

+1

和关于[openrowset](https://msdn.microsoft.com/en-us/library/ms190312.aspx) –

回答

0

正如琐说,你可以使用opendatasrouce这样

Select 
* 
from 
OPENDATASOURCE(
      'SQLOLEDB', 
      'Data Source=_SQL_SERVER_NAME_;User ID=_LOGIN_;Password=_PASSWORD_' 
      ).[DatabaseName].dbo.dbPerson 
    WHERE ... 

,或者你可以使用不同的供应商,并把不同的连接字符串

+0

谢谢。 opendatasource是开箱即用还是有先决条件? – w0051977

+0

开箱,没有先决条件 –