我有两个数据库,a,b, a数据库的字段是 itemcode,oldFumber, b数据库的字段
bitemcode,Fumber,在b 数据库中 bitemcode 的值是空的,现在想要使用触发器
把 数据库 a 中的 itemcode 字段的值 刷 到 b 数据库的bitemcode 字段, 通过比较
oldFumber 和 Fumber 这两个字段的内容 是否一样,一样的话就把a数据库的数据刷的 b数据库,数据量比较大,大神们知道怎么写?多是字符型的数据,使用sqlservice
是同步整个数据库还是同步数据库的几张表
写一个存储过程可以解决,需要的时候调一下
--创建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
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
可以下载SQLyog导出你的数据库表表格,然后用文件插入