sqlserver中的DBLink
--查看当前链接情况: 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' --要访问的服务器 这里的datasrc是要链接的数据库的实例的地址(就是数据库连接字符串里的server,比如本机就是.或者local,或者目标数据库实例的IP(可以加端口)) --使用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' 不同服务器数据库之间的数据操作 --创建链接服务器 exec?sp_addlinkedserver?'ITSV'?,?''SQLOLEDB远程服务器名或ip地址 ?sp_addlinkedsrvlogin?falsenull用户名密码查询示例 select?*?from?ITSV.数据库名.dbo.表名 导入示例 into?表?以后不再使用时删除链接服务器 ?sp_dropserver?droplogins连接远程/局域网数据(openrowset/openquery/opendatasource)?-- 1、openrowset?查询示例??openrowset(sql服务器名?;?生成本地表 把本地表导入远程表 insert(??本地表 更新本地表?update?b?set?b.列A=a.列A?as?a?innerjoin?本地表 b?on?a.column1??b.column1 openquery用法需要创建一个连接 首先创建一个连接创建链接服务器 查询 FROMopenquery(ITSV,0)">SELECT * FROM 数据库.dbo.表名) ?)??b.列Ba.列B??a.列Ab.列A 3、opendatasource/openrowset SELECTopendatasourceData Source=ip/ServerName ; User ID=登陆名 ; Password=密码).test.dbo.roy_ta ).数据库.dbo.表名??本地表? http://blog.sina.com.cn/s/blog_4c197d4201017aoq.html http://www.cnblogs.com/JimmyGe/archive/2011/07/15/2107098.html http://blog.csdn.net/luoyanqing119/article/details/7506385 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |