-- sp_helpserver 当前可用的服务器
Exec sp_helpserver
-- sys.servers 当前链接情况:
select * from sys.servers
--删除已经存在的链接
Exec sp_droplinkedsrvlogin 服务器别名,Null
--删除已存在的服务器
Exec sp_dropserver 服务器别名
--使用sp_addlinkedserver来增加链接 (其实:@server,@srvproduct,@provide,@datasrc可省略不写)
EXEC sp_addlinkedserver
@server='ITSV',--被访问的服务器别名(习惯上直接使用目标服务器IP,或取个别名如:ITSV)
@srvproduct='',
@provider='SQLOLEDB',
@datasrc='192.168.1.134' --要访问的服务器IP地址
--使用sp_addlinkedsrvlogin 来增加用户登录链接
EXEC sp_addlinkedsrvlogin
'ITSV', --访问的服务器名(如果上面sp_addlinkedserver中使用别名ITSV,则这里也是ITSV)
'false',
NULL,
'sa', --帐号
'sa' --密码
--示例(访问目标服务器上的数据库TestData,查看其中表TestTable的内容):
--如果建立链接时的别名是目标服务器IP,即192.168.1.134 则:
select * from [192.168.1.134].[TestData].dbo.TestTable
--如果建立链接时的别名是ITSV,则:
select * from [ITSV].[TestData].dbo.TestTable
--可能会遇到的问题:
exec sp_dropserver 'ITSV' --执行失败,
--报错信息:仍有对服务器 'ITSV' 的远程登录或链接登录。
--解决方法:
exec sp_droplinkedsrvlogin 'ITSV',null
exec sp_dropserver 'ITSV'
--示例:
IF NOT EXISTS(select * from sys.servers where name='ITSV')--如果不存在ITSV服务器 则:创建
begin
exec sp_addlinkedserver 'ITSV ', ' ', 'SQLOLEDB ', '192.168.1.134' --连接192.168.1.134服务器
end
exec sp_addlinkedsrvlogin 'ITSV ', 'false ',null, 'sa', '123456' -- 登陆ITSV服务器,用户名:sa;密码:sa
IF EXISTS(select * from sys.servers where name='ITSV')--如果存在ITSV服务器 则:删除
begin
exec sp_dropserver 'ITSV ', 'droplogins' --删除ITSV服务器
end