高分求教: 如何在 数据库A 的存储过程中 对 数据库B 插入数据
高分求教: 如何在 数据库A 的存储过程中 对 数据库B 插入数据
数据库 A 和 数据库B 在同一个局域网里面不同的服务器上
有可能实现吗?? 最好能简单的给几句代码
问题点数:200、回复次数:13Top
1 楼paoluo(一天到晚游泳的鱼)回复于 2005-07-01 15:06:56 得分 100
--创建链接服务器
exec sp_addlinkedserver 'srv_lnk','','SQLOLEDB','远程服务器名或ip地址'
exec sp_addlinkedsrvlogin 'srv_lnk','false',null,'用户名','密码'
go
--查询示例
select * from srv_lnk.数据库名.dbo.表名
--导入示例
select * into 表 from srv_lnk.数据库名.dbo.表名
go
--以后不再使用时删除链接服务器
exec sp_dropserver 'srv_lnk','droplogins'
--如果只是临时访问,可以直接用openrowset
--查询示例
select * from openrowset('SQLOLEDB'
,'sql服务器名';'用户名';'密码'
,数据库名.dbo.表名)
--导入示例
select * into 表 from openrowset('SQLOLEDB'
,'sql服务器名';'用户名';'密码'
,数据库名.dbo.表名)Top
2 楼hsj20041004(光芒)回复于 2005-07-01 15:11:03 得分 10
首先建立连接服务器,把俩个数据库连接起来 。假定连接服务名为aaa
dbo为所有者名
try!
insert into aaa.dbo.table1 select * from bbb.dbo.table1
Top
3 楼arrow_gx(8088的脑袋)回复于 2005-07-01 15:12:06 得分 0
试试,可以马上给分,哈哈,原来这么容易,看来,基本功还是不够好Top
4 楼echoxue(咱当过兵的人)回复于 2005-07-01 15:58:47 得分 10
高深的问题
学习再学习!!!!!!!!!!!!Top
5 楼Yisa()回复于 2005-07-01 15:59:00 得分 0
Please try it.
insert into openrowset('sqloledb','B服務器名';'sa';'密碼', B庫名.dbo.B表)select * from A庫名.dbo.A表名
Top
6 楼arrow_gx(8088的脑袋)回复于 2005-07-01 17:38:27 得分 0
不行啊,在存储过程里面用到了事务,就会出现以下错误,如何解决??
该操作未能执行,因为 OLE DB 提供程序 'SQLOLEDB' 无法启动分布式事务。
[OLE provider returned message: 新事务不能登记到指定的事务处理器中。 ]
OLE DB 错误跟踪[OLE Provider 'SQLOLEDB' ITransactionJoin::JoinTransaction returned 0x8004d00a]。
Top
7 楼paoluo(一天到晚游泳的鱼)回复于 2005-07-01 17:44:36 得分 0
那就不建链接服务器,直接这样插入呢??
insert into A.dbo.table1 select * from openrowset('SQLOLEDB'
,'sql服务器名';'用户名';'密码'
,B.dbo.table1 )Top
8 楼Frewin(frewin)回复于 2005-07-01 17:51:47 得分 10
select * from openrowset('SQLOLEDB'
,'sql服务器名';'用户名';'密码'
,数据库名.dbo.表名)Top
9 楼631799(杭州工人)回复于 2005-07-01 18:01:20 得分 50
用到分布式事务时,要用'MSDASQL'代替'SQLOLEDB'。
set XACT_ABORT on
set ANSI_NULL_DFLT_ON on
set ANSI_WARNINGS on
BEGIN DISTRIBUTED TRANSACTION
select * from OPENDATASOURCE('MSDASQL',--这里不能用SQLOLEDB
'DRIVER={SQL Server};SERVER=192.168.2.1;UID=sa;PWD=ruirui;').pubs.dbo.jobs
commit tranTop
10 楼skywebnet(小苯)回复于 2005-07-02 09:46:25 得分 5
使用 链接服务器 就可实现楼主的需求,实现方式楼上都……Top
11 楼hsj20041004(光芒)回复于 2005-07-02 10:19:05 得分 5
你不要用语句建立链接服务器
手动在企业管理器中建立。
再进行操作。Top
12 楼gmc007(江西的佬表)回复于 2005-07-02 10:31:00 得分 5
没试过,不敢乱说:)Top
13 楼sxycgxj(云中客)回复于 2005-07-02 10:36:30 得分 5
--创建链接服务器
--查询示例
select * from srv_lnk.数据库名.dbo.表名
--导入示例
select * into 表 from srv_lnk.数据库名.dbo.表名
Top




