大家都知道SQL Server事务是单个的工作单元。如果某一事务成功,则在该事务中进行的所有数据修改均会提交,成为数据库中的永久组成部分。如果事务遇到错误且必须取消或回滚,则所有数据修改均被清除。
所以是不是说事务出错一定会回滚整个事物呢? 先看几个个例子:
--createtable
create table testrollback(idintprimarykey, namevarchar(10))
SETXACT_ABORTOFF --Default Settings
begin tran
insert into testrollbackvalues(1,'kevin')
insert into testrollbackvalues(2,'kevin')
insert into testrollbackvalues(1,'kevin')
insert into testrollbackvalues(3,'kevin')