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)
我设法使用“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)