创建链接服务器注意事项当我们要跨本地数据库,访问另外一个数据库表中的数据时,本地数据库中就必须要创建远程数据库的DBLINK,通过DBLINNK数据库可以像访问本地数据库一样访问远程数据库表中的数据。链接服务器允许访问针对OLE DB数据源的分布式异构查询。创建链接服务器后,可以针对此服务器运行分布式查询,并且查询可以连接来自多个数据源的表。如果链接服务器被定义为SQL Server的实例,则可以执行远程存储过程。链接服务器的功能和必需参数可能会有很大差异。使用SSMS数据库管理工具创建DBLINK1、连接服务器-》展开服务器-》展开服务器对象-》展开链接服务器-》右键点击链接服务器-》点击新建链接服务器。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–RPCexec 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=nullgo–惰性架构验证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 AINNER JOIN [TANG\SQLEXPRESS].[testss].[dbo].[test3] AS B ON A.classid=B.id结果DBLINK链接优缺点优点1、允许跨服务器访问。2、数据量少的情况下用dblink比较简单,迅速。3、可以执行远程存储过程等。缺点1、远程查询时易受网络等影响。2、链接稳定性较差。3、大量消耗数据库资源。4、可扩展性较差。5、维护性差、安全性较低。
...