1:支持拷贝一个表的记录后,就将源表里的相关记录删掉,然后再进行下一个拷贝-删除操作
2:应用事务,如:
BEGIN TRAN T1
 insert into A' select * from A where 条件...
 delete from A where 条件....
COMMIT TRAN T1BEGIN TRAN T1
 insert into B' select * from B where 条件...
 delete from B where 条件....
COMMIT TRAN T1。


解决方案 »

  1.   

    先谢过yoki(小马哥),
    能说说为何拷贝一个表的记录后,就将源表里的相关记录删掉更好吗?
    另,2中所写的事务,如果执行过程中出错,自己会自动回滚吗?还是要再写别的代码才能实现回滚呢?
      

  2.   

    commit 之后会将结果真正地提交,否则只是在一个缓存里操作的。
      

  3.   

    在一个事务中进行,每一步都进行判断,成功继续,否则ROLLBACK,返回;等全部做完后,都成功了,进行确认COMMIT。
      

  4.   

    BEGIN TRAN 
     insert into A' select * from A where 条件...
    If @@Error<>0
       Begin
           RollBack
           Return
       End
     delete from A where 条件....
     insert into B' select * from B where 条件...
     delete from B where 条件....
    ...
    ...
    ...
    COMMIT TRAN每一句语句后面都加以下一段就可以了
    If @@Error<>0
       Begin
           RollBack
           Return
       End
      

  5.   

    那整个结构是不是应该是这样啊:BEGIN TRAN 
     insert into A' select * from A where 条件...
    If @@Error<>0
       Begin
           RollBack
           Return
       End
     delete from A where 条件....
    If @@Error<>0
       Begin
           RollBack
           Return
       End insert into B' select * from B where 条件...
    If @@Error<>0
       Begin
           RollBack
           Return
       End delete from B where 条件....
    If @@Error<>0
       Begin
           RollBack
           Return
       End...
    ...
    ...
    COMMIT TRAN