表数据重复
本帖最后由 jkshu 于 2013-09-04 11:48:37 编辑
在服务器上写了个存储过程,定时执行这个存储过程,偶尔情况下a表中会得到重复数据,请大家帮忙看看。
a、b表结构完全一样。
BEGIN TRAN
insert into a select * from b
if(@@error<>0)
BEGIN
ROLLBACK TRAN
RETURN
END
TRUNCATE TABLE b
if(@@error<>0)
BEGIN
ROLLBACK TRAN
RETURN
END
COMMIT TRAN
------解决方案--------------------解决方法是A表中设置一个主键 然后插入的时候用语句
insert into a select * from b where not exists(select 1 from a where a.主键=b.关联字段)
------解决方案--------------------try this,
BEGIN TRAN
insert into a select distinct * from b
if(@@error<>0)
BEGIN
ROLLBACK TRAN
RETURN
END
TRUNCATE TABLE b
if(@@error<>0)
BEGIN
ROLLBACK TRAN
RETURN
END
COMMIT TRAN