在T-SQL中连接到远程服务器(SQL server 2008)

The*_*ter 7 sql t-sql sql-server

有没有人有一个存储过程的例子,它连接到远程服务器?

我一直在网上搜索,到目前为止发现它可以使用sp_addlinkedserver和完成,sp_addlinkedsrvlogin但我没有找到一个很好的例子,我不太了解文档.

更新:

这两个第一个回复都没有帮助我,我能得到的最接近的是:

EXEC sp_addlinkedserver 
    @server = 'SiminnSrv', 
    @provider = 'SQLNCLI',
    @catalog = 'devel',
    @srvproduct = '',
    @provstr = 'DRIVER={SQL Server};SERVER=my.serveradr.com;UID=my_user_name;PWD=my_pass_word;'
Run Code Online (Sandbox Code Playgroud)

这实际上让我连接,但当我查询表时,我收到此消息:

用户'(null)'登录失败.原因:与受信任的SQL Server>连接无关.

Eoi*_*ell 10

基本上,您将链接服务器创建到其他服务器,然后提供用于对该链接服务器的SQL调用的登录凭据.例如,这将使用用户名和密码"DomainUserName","DomainPassword"的DomainAccount连接到"MyOtherServer"

EXEC sp_addlinkedserver 'MyOtherServer', N'SQL Server'


EXEC sp_addlinkedsrvlogin 
   'MyOtherServer', 
   'false', 
   'OtherServerDomain\DomainUser', 
   'DomainUserName', 
   'DomainPassword'
Run Code Online (Sandbox Code Playgroud)

更多信息在这里这里


Mar*_*rio 5

我设法使用“SQL Server Native Client 10” ( SQLNCLI10)通过链接服务器连接到 MSSQL Server 2008 ,但我不得不使用sp_addlinkedsrvlogin而不是@provstr提供连接详细信息。这是基于本文中的示例:

EXEC master.dbo.sp_addlinkedserver 
    @server = 'MyServerConnection',
    @srvproduct = '', 
    @datasrc = 'SERVERNAME\INSTANCENAME',
    @provider = 'SQLNCLI10', 
    @provstr = ''

EXEC sp_addlinkedsrvlogin
    @rmtsrvname = 'MyServerConnection',
    @useself = 'false',
    --@locallogin = 'someLocalUser' -- Use to restrict the connection to specific login
    @rmtuser = 'remoteUser',
    @rmtpassword = 'secret'
Run Code Online (Sandbox Code Playgroud)

查询此链接服务器:

SELECT *
FROM [MyServerConnection].[SomeDatabase].[dbo].[TableName]
Run Code Online (Sandbox Code Playgroud)