读书人

表数据反复

发布时间: 2013-09-26 10:32:35 作者: rapoo

表数据重复
本帖最后由 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

读书人网 >SQL Server

热点推荐