SQLServer之创建链接服务器
栏目: 数据库 · SQL Server · 发布时间: 5年前
内容简介:当我们要跨本地数据库,访问另外一个数据库表中的数据时,本地数据库中就必须要创建远程数据库的DBLINK,通过DBLINNK数据库可以像访问本地数据库一样访问远程数据库表中的数据。链接服务器允许访问针对OLE DB数据源的分布式异构查询。创建链接服务器后,可以针对此服务器运行分布式查询,并且查询可以连接来自多个数据源的表。如果链接服务器被定义为SQL Server的实例,则可以执行远程存储过程。链接服务器的功能和必需参数可能会有很大差异。
创建链接服务器注意事项
当我们要跨本地数据库,访问另外一个数据库表中的数据时,本地数据库中就必须要创建远程数据库的DBLINK,通过DBLINNK数据库可以像访问本地数据库一样访问远程数据库表中的数据。
链接服务器允许访问针对OLE DB数据源的分布式异构查询。创建链接服务器后,可以针对此服务器运行分布式查询,并且查询可以连接来自多个数据源的表。如果链接服务器被定义为SQL Server的实例,则可以执行远程存储过程。
链接服务器的功能和必需参数可能会有很大差异。
使用SSMS数据库管理 工具 创建DBLINK
1、连接服务器-》展开服务器-》展开服务器对象-》展开链接服务器-》右键点击链接服务器-》点击新建链接服务器。
2、在新建链接服务器弹出框-》点击常规-》输入链接服务器名称-》选择服务器类型。
3、在新建链接服务器窗口-》点击安全性-》选择链接服务器的登陆类型-》添加或者删除登陆远程服务器的映射。
4、在新建连接服务器弹出框-》点击服务器选项-》选择服务器选项的属性。
5、在新建链接服务器弹窗框-》点击确定-》在对象资源管理器查看结果。
使用SSMS数据库管理工具创建DBLINK
语法
--声明数据库引用 use master; go --创建DbLink语法 --第一步:定义DBLINK类型 exec master.dbo.sp_addlinkedserver @server='链接服务器名称',@srvproduct='SQL Server'; go --第二步:定义DBLINK连接属性 --第一种安全性:不建立连接(删除下边的登陆) --第二种安全性:不使用安全上下文建立连接 --exec master.dbo.sp_addlinkedsrvlogin @rmtsrvname = N'链接服务器名称', @locallogin = NULL , @useself = N'False' --go --第三种安全性:使用登录名的当前安全上下文建立连接 --exec master.dbo.sp_addlinkedsrvlogin @rmtsrvname = N'链接服务器名称', @locallogin = NULL , @useself = N'True' --go --第四种安全性:使用此安全上下文建立连接 --exec master.dbo.sp_addlinkedsrvlogin @rmtsrvname='链接服务器名称',@locallogin=NULL,@useself='False',@rmtuser='登录名',@rmtpassword='密码'; --go --排序规则兼容 exec master.dbo.sp_serveroption @server=N'链接服务器名称', @optname=N'collation compatible', @optvalue=N'true' | N'false' go --数据访问 exec master.dbo.sp_serveroption @server=N'链接服务器名称', @optname=N'data access', @optvalue=N'true' | N'false' go --订阅服务器 exec master.dbo.sp_serveroption @server=N'链接服务器名称', @optname=N'dist', @optvalue=N'true' | N'false' go --发布服务器 exec master.dbo.sp_serveroption @server=N'链接服务器名称', @optname=N'pub', @optvalue=N'true' | N'false' go --RPC exec master.dbo.sp_serveroption @server=N'链接服务器名称', @optname=N'rpc', @optvalue=N'true' | N'false' go --RPC 超时 exec master.dbo.sp_serveroption @server=N'链接服务器名称', @optname=N'rpc out', @optvalue=N'true' | N'false' go --分发服务器 exec master.dbo.sp_serveroption @server=N'链接服务器名称', @optname=N'sub', @optvalue=N'true' | N'false' go --连接超时值 exec master.dbo.sp_serveroption @server=N'链接服务器名称', @optname=N'connect timeout', @optvalue=N'0' go --排序规则名称 exec master.dbo.sp_serveroption @server=N'链接服务器名称', @optname=N'collation name', @optvalue=null go --惰性架构验证 exec master.dbo.sp_serveroption @server=N'链接服务器名称', @optname=N'lazy schema validation', @optvalue=N'true' | N'false' go --查询超时值 exec master.dbo.sp_serveroption @server=N'链接服务器名称', @optname=N'query timeout', @optvalue=N'0' go --使用远程 排序 规则 exec master.dbo.sp_serveroption @server=N'链接服务器名称', @optname=N'use remote collation', @optvalue=N'true' | N'false' go --为RPC启用针对分布式事务的升级 exec master.dbo.sp_serveroption @server=N'链接服务器名称', @optname=N'remote proc transaction promotion', @optvalue=N'true' | N'false' go
语法解析
第一步和第二步必须同时执行,后面DBLINK属性可以不写使用系统默认。
示例:以我自己本机为例
--声明数据库引用 use master; go --创建DbLink语法 --第一步:定义DBLINK类型 exec master.dbo.sp_addlinkedserver @server='TANG\SQLEXPRESS',@srvproduct='SQL Server'; go ----排序规则兼容 --exec master.dbo.sp_serveroption @server=N'TEST', @optname=N'collation compatible', @optvalue=N'false' --go ----数据访问 --exec master.dbo.sp_serveroption @server=N'TEST', @optname=N'data access', @optvalue=N'true' --go ----订阅服务器 --exec master.dbo.sp_serveroption @server=N'TEST', @optname=N'dist', @optvalue=N'false' --go ----发布服务器 --exec master.dbo.sp_serveroption @server=N'TEST', @optname=N'pub', @optvalue=N'false' --go ----RPC --exec master.dbo.sp_serveroption @server=N'TEST', @optname=N'rpc', @optvalue=N'false' --go ----RPC 超时 --exec master.dbo.sp_serveroption @server=N'TEST', @optname=N'rpc out', @optvalue=N'false' --go ----分发服务器 --exec master.dbo.sp_serveroption @server=N'TEST', @optname=N'sub', @optvalue=N'false' --go ----连接超时值 --exec master.dbo.sp_serveroption @server=N'TEST', @optname=N'connect timeout', @optvalue=N'0' --go ----排序规则名称 --exec master.dbo.sp_serveroption @server=N'TEST', @optname=N'collation name', @optvalue=null --go ----惰性架构验证 --exec master.dbo.sp_serveroption @server=N'TEST', @optname=N'lazy schema validation', @optvalue=N'false' --go ----查询超时值 --exec master.dbo.sp_serveroption @server=N'TEST', @optname=N'query timeout', @optvalue=N'0' --go ----使用远程排序规则 --exec master.dbo.sp_serveroption @server=N'TEST', @optname=N'use remote collation', @optvalue=N'true' --go ----为RPC启用针对分布式事务的升级 --exec master.dbo.sp_serveroption @server=N'TEST', @optname=N'remote proc transaction promotion', @optvalue=N'true' --go --第二步:定义DBLINK连接属性 --第一种安全性:不建立连接(删除下边的登陆) --第二种安全性:不使用安全上下文建立连接 --exec master.dbo.sp_addlinkedsrvlogin @rmtsrvname = N'TANG\SQLEXPRESS', @locallogin = NULL , @useself = N'False' --go --第三种安全性:使用登录名的当前安全上下文建立连接 exec master.dbo.sp_addlinkedsrvlogin @rmtsrvname = N'TANG\SQLEXPRESS', @locallogin = NULL , @useself = N'True' go --第四种安全性:使用此安全上下文建立连接 --exec master.dbo.sp_addlinkedsrvlogin @rmtsrvname='TANG\SQLEXPRESS',@locallogin=NULL,@useself='False',@rmtuser='tests',@rmtpassword='1234'; --go
示例结果:显示创建结果
DBLINK使用
示例
SELECT * FROM [testss].[dbo].[test1] AS A INNER JOIN [TANG\SQLEXPRESS].[testss].[dbo].[test3] AS B ON A.classid=B.id
结果
DBLINK链接优缺点
优点
1、允许跨服务器访问。
2、数据量少的情况下用dblink比较简单,迅速。
3、可以执行远程存储过程等。
缺点
1、远程查询时易受网络等影响。
2、链接稳定性较差。
3、大量消耗数据库资源。
4、可扩展性较差。
5、维护性差、安全性较低。
以上所述就是小编给大家介绍的《SQLServer之创建链接服务器》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!
猜你喜欢:- Linux CMake 快速使用(二)——动态库创建与链接
- 静态链接和动态链接
- linux中硬链接、软链接的建立
- 微信公众号开发C#系列-10、长链接转短链接
- linux – 硬链接或软链接占用文件系统中的任何空间吗?
- Linux 环境下 gcc 链接库 编译、链接(概览) 以及 自动化工具Makefile的编写
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
UNIX编程艺术
Eric S. Raymond / 姜宏、何源、蔡晓俊 / 电子工业出版社 / 2006-2 / 59.00元
本书主要介绍了Unix系统领域中的设计和开发哲学、思想文化体系、原则与经验,由公认的Unix编程大师、开源运动领袖人物之一Eric S. Raymond倾力多年写作而成。包括Unix设计者在内的多位领域专家也为本书贡献了宝贵的内容。本书内容涉及社群文化、软件开发设计与实现,覆盖面广、内容深邃,完全展现了作者极其深厚的经验积累和领域智慧。一起来看看 《UNIX编程艺术》 这本书的介绍吧!