在一个事务中我进行如下操作insert into TableA (主键是ABC的一条数据)
delete from TableA where(主键是ABC的这条数据)
insert into TableA (再次插入这条主键是ABC的数据)提交事务时会报错!这是为什么呢?

解决方案 »

  1.   

    你这是在 事务中进行的操作
    事务的特点是 所以语句执行没有问题才会真正执行
    你前两条语句 执行没有问题
    但是 最后一条语句执行有问题 因为是事务 当执行第三条语句的时候 TableA中其实还是存在主键为ABC这条记录的,那么再次插入主键为 ABC的语句是 就会报错。
      

  2.   


    但是第一条里的ABC主键已经删掉后第三条语句才插入的,从上往下执行的话是没有问题的,在没有加TransactionScope的时候是一点问题都没,一加上就报主键冲突错
      

  3.   


    把你整个SQL语句贴出来吧