sql server同步数据库添加标识符

我这边需要将一个数据库的数据采用job 定时同步到另外一个数据库,但是需要再另外一个数据库的记录加上标识符,比如说这条数据在原数据删除了则标识为delete,新增的则标志为new,有什么比较好的思路吗?请教各位大神!

如楼上所讲,原数据库id设为主键,且id应为自增值。不清楚你所说两个数据库是不是在同一个服务器里,如果是,用触发器就可以了。
假设原库tb1,另一库tb2,标记字段是mark,删除标记'del',新增标记'new',另外更新的情况,我个人认为原数据设定为'del',新数据是'new',另一数据库id就应设为非聚集索引,你视自己实际的情况来定
create trigger trtb1 on tb1 for insert,update,delete as
if exists(select 0 from inserted) and exists(select 0 from deleted) begin update tb2 set mark='del' where id in(select id from deleted); insert into tb2 (...,mark)select ...,'new' from inserted end
if(insert)insert into tb2 (...,mark)select ...,'new' from inserted
if(delete)...

如果非得用job,新增、删除都可以操作:
insert into tb2 (...,mark)select ...,'new' from tb1 where id>(select max(id) from tb2)
update tb2 set mark='del' where id in(select id from tb2 where mark<>'del' except select id from tb1 where id<(select max(id) from tb2))
但更新的情况会棘手,以上是我的看法

猜你喜欢

转载自www.cnblogs.com/SyncNavigator8-4-1/p/10974311.html