对于相关的数据库脚本的手动执行的数据互导功能!
关键的重点在于建立的连接关系,连接建立好后执行的数据库相关的脚本实现就方便的多了 ~~~~
1 。从一个数据库的一张表 B 中向另外的一个数据库的表 A (起码有相同的字段属性,或字段值)
insert into A( 字段 1 ,字段 2 。。。字段 n)
select 字段 1 ,字段 2 , 120 , ... 字段 n
from OPENDATASOURCE('SQLOLEDB','Data Source=B 所在的服务器 ;User ID= 用户名 ;Password= 登陆口令 ').B 库 .dbo.B 表
where 字段 1= ? and ...
该操作一般用在查询分析器中!
2 。游标的利用,在服务器间传递数据的值
declare @GEN_ID nvarchar(4000)
declare @QUAN nvarchar(4000)
declare @FEE_STATUS_OPERATOR nvarchar(4000)
declare @FEE_STATUS_OPERATETIME nvarchar(4000)
declare @status_operateid nvarchar(4000)
declare @client_sname nvarchar(4000)
BEGIN TRAN STATUS
declare USR cursor for select d. 字段 1,d. 字段 2 from OPENDATASOURCE(
'SQLOLEDB',
'Data Source= 服务器 1;User ID=;Password='
). 库 1.dbo. 表 1 as g inner join OPENDATASOURCE(
'SQLOLEDB',
'Data Source= 服务器 1;User ID=;Password='
). 库 1.dbo. 表 1 as d on g. 字段 1=d. 字段 1 inner join OPENDATASOURCE(
'SQLOLEDB',
'Data Source= 服务器 1;User ID=;Password='
). 库 2.dbo. 表 1 ‘ as s on g. 字段 1=s. 字段 1 where g. 字段 2=0 and g. 字段 3=0 and s. 字段 4=6
open USR
fetch next from USR into @GEN_ID,@QUAN
WHILE @@FETCH_STATUS = 0
BEGIN
update 库 A.dbo. 表 set 字段 =@QUAN where 字段 1=rtrim(@GEN_ID)
fetch next from USR into @GEN_ID,@QUAN
end
close USR
deallocate USR
declare USR1 cursor for select 字段 1 ,字段 2 , 120 , ... 字段 n
from OPENDATASOURCE(
'SQLOLEDB',
'Data Source= 服务器 1;User ID=;Password='
). 库 1.dbo. 表 1 as g inner join OPENDATASOURCE(
'SQLOLEDB',
'Data Source= 服务器 1;User ID=;Password='
). 库 1.dbo. 表 1 as d on g. 字段 1=d. 字段 1
where g. 字段 2=0 and g. 字段 3=0 and s. 字段 4=6
open USR1
fetch next from USR into @GEN_ID,@FEE_STATUS_OPERATOR,@FEE_STATUS_OPERATETIME,@status_operateid,@client_sname
WHILE @@FETCH_STATUS = 0
BEGIN
insert into A( 字段 1 ,字段 2 。。。字段 n)
values(@GEN_ID,'2','0',@FEE_STATUS_OPERATOR,@FEE_STATUS_OPERATETIME,@status_operateid,@client_sname)
fetch next from USR1 into @GEN_ID,@FEE_STATUS_OPERATOR,@FEE_STATUS_OPERATETIME,@status_operateid,@client_sname
end
close USR1
deallocate USR1
---------------- 说明对于游标的利用可以多次,唯一的缺点的就是执行的时间过长!对于这方面要权衡考虑!
if (@@error<>0)
begin
rollback tran STATUS
end
else
begin
commit tran STATUS
end
------------ 事物处理