利用sp_addlinkedserver实现远程数据库链接

--查看当前链接情况:

select * from sys.servers;

 

--使用 sp_helpserver 来显示可用的服务器
Exec sp_helpserver

 

--删除已经存在的某个链接

Exec sp_droplinkedsrvlogin 服务器别名,Null
Exec sp_dropserver 服务器别名

 

--使用sp_addlinkedserver来增加链接

EXEC sp_addlinkedserver
@server='192.168.2.66'
,
--被访问的服务器别名(习惯上直接使用目标服务器IP,或取个别名如:JOY)
@srvproduct='',
@provider='SQLOLEDB',
@datasrc='192.168.2.66'
--要访问的服务器

 

--使用sp_addlinkedsrvlogin 来增加用户登录链接

EXEC sp_addlinkedsrvlogin
'192.168.2.66',
--被访问的服务器别名(如果上面sp_addlinkedserver中使用别名JOY,则这里也是JOY)
'false',
NULL,
'sa',
--帐号
'test123' --密码

 

使用举例(访问目标服务器上的数据库Music,查看其中表test的内容):

如果建立链接时的别名是目标服务器IP,即192.168.2.66

则:

select * from [192.168.2.66].[Music].dbo.test

如果建立链接时的别名是JOY,

则:

select * from [JOY].[Music].dbo.test

 

可能会遇到的问题:
exec sp_dropserver 'JOY'执行失败,

报错信息:仍有对服务器 'JOY' 的远程登录或链接登录

解决方法:

exec sp_droplinkedsrvlogin 'JOY',null

exec sp_dropserver 'JOY'

转载于:https://www.cnblogs.com/zcm123/archive/2013/03/21/2973690.html

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在SQL Server中,可以使用sp_addlinkedserver存储过程和sp_addlinkedsrvlogin存储过程创建链接服务器,并通过链接服务器来访问其他SQL Server实例中的数据库。在链接服务器创建好之后,可以使用四部分名称(four-part name)来引用链接服务器上的数据库。四部分名称的格式如下: ``` [ linked_server_name. ][ database_name. ][ schema_name. ] object_name ``` 其中,linked_server_name是链接服务器的名称,database_name是链接服务器上的数据库名称,schema_name是对象所在的架构名称,object_name是对象的名称。 以下是一个示例,展示如何使用链接服务器访问其他SQL Server实例中的数据库: ``` -- 创建链接服务器 EXEC sp_addlinkedserver @server = 'MyLinkedServer', @srvproduct = '', @provider = 'SQLNCLI', @datasrc = 'MyServer\MyInstance'; -- 创建链接服务器登录 EXEC sp_addlinkedsrvlogin @rmtsrvname = 'MyLinkedServer', @useself = 'FALSE', @locallogin = NULL, @rmtuser = 'remote_user', @rmtpassword = 'remote_password'; -- 查询链接服务器上的数据库 SELECT * FROM MyLinkedServer.MyDatabase.dbo.MyTable; ``` 在这个例子中,我们首先使用sp_addlinkedserver存储过程创建了一个名为“MyLinkedServer”的链接服务器,它连接到一个名为“MyServer\MyInstance”的SQL Server实例。然后,我们使用sp_addlinkedsrvlogin存储过程创建了一个链接服务器登录,以便我们可以使用链接服务器上的凭据访问远程SQL Server实例。最后,我们使用四部分名称的方式来查询链接服务器上的数据库中的表。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值