把一个数据库中的数据 大批量更新到另一个数据库, 20C

我有两个数据库,a,b, a数据库的字段是 itemcode,oldFumber, b数据库的字段
bitemcode,Fumber,在b 数据库中 bitemcode 的值是空的,现在想要使用触发器
把 数据库 a 中的 itemcode 字段的值 刷 到 b 数据库的bitemcode 字段, 通过比较
oldFumber 和 Fumber 这两个字段的内容 是否一样,一样的话就把a数据库的数据刷的 b数据库,数据量比较大,大神们知道怎么写?多是字符型的数据,使用sqlservice

6个回答

是同步整个数据库还是同步数据库的几张表

写一个存储过程可以解决,需要的时候调一下

--创建update触发器
create trigger trig_update
on b
after update
as
begin
declare @oldFumber varcahr(16);
declare @Fumber varcahr(16);
declare @ itemcode varcahr(64);
declare @bitemcode varcahr(64);
select @oldFumber,@ itemcode from a;
select @Fumber,@bitemcode from b;
if @oldFumber = @Fumber
update b set @bitemcode =@ itemcode;
end

congyeyan9940
笨笨的程序员啊 没用过sql server的触发器 但是应该差不多是这个意思
大约 2 年之前 回复

CREATE TRIGGER TRI1
ON b
FOR UPDATE
AS
IF b.Fumber=a.oldFumber
From openquery(ITSV, 'SELECT * FROM 数据库.dbo.表名 ') as a
BEGIN
update b
set b.bitemcode=a.itemcod
FROM openquery(ITSV, 'SELECT * FROM 数据库.dbo.表名 ') as a
END
GO

declare @itemcode varchar(max);
declare @oldFumber varchar(max);
declare @a int;
declare @b int;
set @itemcode=''
set @oldFumber=''
set @a=0
set @b=1
select @a=COUNT(*) from a

while(@a>0)
begin
    select top (@b) @itemcode=itemcode,@oldFumber=oldFumber from a
    UPDATE b set bitemcode =@itemcode where Fumber=@oldFumber
    set @b=@b+1
    set @a=@a-1
end

把表名更改 直接执行,有那里错误详细联系我QQ 291957296

qq_41179521
qq_291957296 那个top 查询有错误,需要更改
大约 2 年之前 回复

可以下载SQLyog导出你的数据库表表格,然后用文件插入

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问