《2022年不同服务器数据库之间的数据操作 .pdf》由会员分享,可在线阅读,更多相关《2022年不同服务器数据库之间的数据操作 .pdf(7页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、不同服务器数据库之间的数据操作-创建链接服务器exec sp_addlinkedserver ITSV , , SQLOLEDB , 远程服务器名或ip 地址 exec sp_addlinkedsrvlogin ITSV , false ,null, 用户名, 密码 -查询示例select * from ITSV .数据库名 .dbo.表名-导入示例select * into 表 from ITSV .数据库名 .dbo.表名-以后不再使用时删除链接服务器exec sp_dropserver ITSV , droplogins -连接远程 /局域网数据 (openrowset/openquer
2、y/opendatasource) -1、openrowset -查询示例select * from openrowset( SQLOLEDB , sql服务器名; 用户名; 密码,数据库名 .dbo.表名 ) -生成本地表select * into 表 from openrowset( SQLOLEDB , sql 服务器名; 用户名; 密码,数据库名.dbo.表名 ) -把本地表导入远程表insert openrowset( SQLOLEDB , sql服务器名; 用户名; 密码,数据库名 .dbo.表名 ) select *from 本地表-更新本地表update b set b.列 A
3、=a.列 A from openrowset( SQLOLEDB , sql 服务器名; 用户名; 密码,数据库名 .dbo.表名 )as a inner join 本地表b on a.column1=b.column1 -openquery 用法需要创建一个连接-首先创建一个连接创建链接服务器exec sp_addlinkedserver ITSV , , SQLOLEDB , 远程服务器名或ip 地址 -查询select * FROM openquery(ITSV , SELECT * FROM 数据库 .dbo.表名) -把本地表导入远程表名师资料总结 - - -精品资料欢迎下载 - -
4、 - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 7 页 - - - - - - - - - insert openquery(ITSV , SELECT * FROM 数据库 .dbo.表名) select * from 本地表-更新本地表update b set b.列 B=a.列 B FROM openquery(ITSV , SELECT * FROM 数据库 .dbo.表名) as a inner join 本地表b on a.列 A=b.列 A -3、opendatasource/openrowset SEL
5、ECT * FROM opendatasource( SQLOLEDB , Data Source=ip/ServerName;User ID= 登 陆名;Password=密码 ).test.dbo.roy_ta -把本地表导入远程表insert opendatasource( SQLOLEDB , Data Source=ip/ServerName;User ID=登 陆名;Password=密码).数据库 .dbo.表名select * from 照着做就行修改删除举报引用回复加为好友发送私信在线聊天wzy_love_sly BackKom. (紫煈)等级 : 可用分等级:小地主总技术专
6、家分:39506 总技术专家分排名:224 发表于: 2008-06-02 23:09:488 楼 得分 :0 SQL code-创建链接服务器exec sp_addlinkedserver ITSV , , SQLOLEDB , 远程服务器名或ip 地址 exec sp_addlinkedsrvlogin ITSV , false ,null, 用户名, 密码 -查询示例select * from ITSV .数据库名 .dbo.表名-导入示例select * into 表 from ITSV .数据库名 .dbo.表名-以后不再使用时删除链接服务器名师资料总结 - - -精品资料欢迎下载
7、- - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 7 页 - - - - - - - - - exec sp_dropserver ITSV , droplogins -连接远程 /局域网数据 (openrowset/openquery/opendatasource) -1、openrowset -查询示例select * from openrowset( SQLOLEDB , sql服务器名; 用户名; 密码,数据库名 .dbo.表名 ) -生成本地表select * into 表 from openrowset
8、( SQLOLEDB , sql 服务器名; 用户名; 密码,数据库名.dbo.表名 ) -把本地表导入远程表insert openrowset( SQLOLEDB , sql服务器名; 用户名; 密码,数据库名 .dbo.表名 ) select *from 本地表-更新本地表update b set b.列 A=a.列 A from openrowset( SQLOLEDB , sql 服务器名; 用户名; 密码,数据库名 .dbo.表名 )as a inner join 本地表b on a.column1=b.column1 -openquery 用法需要创建一个连接-首先创建一个连接创建
9、链接服务器exec sp_addlinkedserver ITSV , , SQLOLEDB , 远程服务器名或ip 地址 -查询select * FROM openquery(ITSV , SELECT * FROM 数据库 .dbo.表名) -把本地表导入远程表insert openquery(ITSV , SELECT * FROM 数据库 .dbo.表名) select * from 本地表-更新本地表update b set b.列 B=a.列 B FROM openquery(ITSV , SELECT * FROM 数据库 .dbo.表名) as a inner join 本地表
10、b on a.列 A=b.列 A -3、opendatasource/openrowset SELECT * FROM opendatasource( SQLOLEDB , Data Source=ip/ServerName;User ID= 登 陆名;Password=密码 ).test.dbo.roy_ta -把本地表导入远程表名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 7 页 - - - - - - - - - insert opendatasource( SQ
11、LOLEDB , Data Source=ip/ServerName;User ID=登 陆名;Password=密码).数据库 .dbo.表名select * from tb 修改删除举报引用回复加为好友发送私信在线聊天wzy_love_sly BackKom. (紫煈)等级 : 可用分等级:小地主总技术专家分:39506 总技术专家分排名:224 发表于: 2008-06-02 23:10:129 楼 得分 :0 1 是查询, 2 是操作修改删除举报引用回复加为好友发送私信在线聊天zaplujean 等级 : 可用分等级:贫农总技术专家分:0 总技术专家分排名:311804 发表于: 20
12、08-06-03 15:01:4510 楼 得分 :0 如果是简单的A- (LINKSERVER )- B 的查询、插入等操作,都没有问题现在问题在于A-B-A 你可以简单做个测试:1、-创建链接服务器在服务器 A 上执行:exec sp_addlinkedserver LNK_B, , SQLOLEDB , DRIVER=SQL Server;server=服务器 B exec sp_addlinkedsrvlogin LNK_B, false ,null, 用户名 , 密码 exec sp_serveroption LNK_B, rpc out,true 在服务器 B 上执行:名师资料总结
13、 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 7 页 - - - - - - - - - exec sp_addlinkedserver LNK_A, , SQLOLEDB , DRIVER=SQL Server;server=服务器 A exec sp_addlinkedsrvlogin LNK_A, false ,null, 用户名 , 密码 exec sp_serveroption LNK_A, rpc out,true 2、在服务器B 上创建 TableB 的插入触发器Cr
14、eate TRIGGER TBInserted ON TableB FOR INSERT AS SET NOCOUNT ON INSERT INTO lnk_A.DB_TEST.dbo.TableC (F1, F2) VALUES (A,B) - 往机器 A 中插入表TableC,注意单独在查询管理器中运行是没有问题的。3、在服务器A 上执行Insert into lnk_B.DB_TEST2.dbo.TableB (F1, F2) VALUES (A,B) 注意此时实际上会触发B 上 Trigger TBInserted ,从而导致再往A 上的表 C 写入! !此时出错!服务器 : 消息74
15、16,级别16,状态2,行 1 对远程服务器的访问遭拒绝,因为不存在登录映射。修改删除举报引用回复加为好友发送私信在线聊天utpcb 倒霉的孩子无业游民等级 : 可用分等级:长工总技术专家分:5742 总技术专家分排名:3805 发表于: 2008-06-03 15:03:1811 楼 得分 :30 -创建链接服务器exec sp_addlinkedserver ITSV , , SQLOLEDB , 远程服务器名或ip 地址 exec sp_addlinkedsrvlogin ITSV , false ,null, 用户名, 密码 -查询示例select * from ITSV .数据库名
16、.dbo.表名-导入示例select * into 表 from ITSV .数据库名 .dbo.表名名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 5 页,共 7 页 - - - - - - - - - -以后不再使用时删除链接服务器exec sp_dropserver ITSV , droplogins -连接远程 /局域网数据 (openrowset/openquery/opendatasource) -1、openrowset -查询示例select * from openr
17、owset( SQLOLEDB , sql服务器名; 用户名; 密码,数据库名 .dbo.表名 ) -生成本地表select * into 表 from openrowset( SQLOLEDB , sql 服务器名; 用户名; 密码,数据库名.dbo.表名 ) -把本地表导入远程表insert openrowset( SQLOLEDB , sql服务器名; 用户名; 密码,数据库名 .dbo.表名 ) select *from 本地表-更新本地表update b set b.列 A=a.列 A from openrowset( SQLOLEDB , sql 服务器名; 用户名; 密码,数据库
18、名 .dbo.表名 )as a inner join 本地表b on a.column1=b.column1 -openquery 用法需要创建一个连接-首先创建一个连接创建链接服务器exec sp_addlinkedserver ITSV , , SQLOLEDB , 远程服务器名或ip 地址 -查询select * FROM openquery(ITSV , SELECT * FROM 数据库 .dbo.表名) -把本地表导入远程表insert openquery(ITSV , SELECT * FROM 数据库 .dbo.表名) select * from 本地表-更新本地表update
19、 b set b.列 B=a.列 B FROM openquery(ITSV , SELECT * FROM 数据库 .dbo.表名) as a inner join 本地表b on a.列 A=b.列 A -3、opendatasource/openrowset SELECT * FROM opendatasource( SQLOLEDB , Data Source=ip/ServerName;User ID= 登 陆名;Password=密码 ).test.dbo.roy_ta 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 6 页,共 7 页 - - - - - - - - - -把本地表导入远程表insert opendatasource( SQLOLEDB , Data Source=ip/ServerName;User ID=登 陆名;Password=密码).数据库 .dbo.表名select * from tb 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 7 页,共 7 页 - - - - - - - - -
限制150内