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。
。
。
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。
。
。
解决方案 »
- 求一条SQL语句
- ado访问数据库的性能问题。如何提升一百万多万条记录的大数据量访问速度
- 哪种数据结构更规范?
- 用一个表的数据更新另一个表
- ODBC问题,会的请进来指导,不会的也来学学!
- SQL 2005版本问题, 大家快来抢分呀!!!!(100分喔)
- 请高手指点: 做一个项目的时候,数据库设计的有哪些步骤和设计原则。
- 请教一T-SQL语句,使得可以从一个表中检索出字段A的无重复纪录,并按字段B排序;其中字段A有重复纪录,字段B无重复纪录.
- 很简单的问题!!!!!!!!!!
- 聚集索引新增分页产生外部碎片问题
- &&&&&&一个困扰我的查询语句,在线等大侠!&&&&&&&
- 怎样用sql语句插入多个byte得2进制数据到char(20)中?
能说说为何拷贝一个表的记录后,就将源表里的相关记录删掉更好吗?
另,2中所写的事务,如果执行过程中出错,自己会自动回滚吗?还是要再写别的代码才能实现回滚呢?
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
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