[SQL Server]事务异常处理不能及时回滚
事务异常处理不能及时回滚
问题重现的代码
问题重现的代码
begin transaction tKaiser
begin try
create table Test
(
[ID] int identity(1,1) primary key,
[Name] nvarchar(50) not null,
[Age] int check ([Age] between 1 and 200),
[Sex] int check ([Sex] in (0, 1))
)
--这里将会产生一个异常
select * from asdf
commit transaction tKaiser
print 'transaction is commit'
end try
begin catch
rollback transaction tKaiser;
end catch
go
--按理说,事务已经被回滚了,下面的查询是会报错的,可事实却不是如此
--如果再执行一下创见表的操作(我理解是,创建表操作,是有默认事务的,
--也就是说再新事务之前才会回滚上一次事务),则test表就会被删除了。我想应该是我对sql2005中的异常处理机制
--的理解有问题,请大人们帮忙解释一下。谢谢
insert into Test([Name], [Age], [Sex])
select 'kaiser', '20', '0'
select * from test
...全文
相关推荐
用户注册和用户登录,SQl Server数据库
采用ASP.net写的用户注册,登录,其中包括界面,连接数据库
SQL Server中TRUNCATE事务回滚操作方法
本文介绍在事务中回滚TRUNCATE操作的方法,并演示了操作的结果,是可以对TRUNCATE进行回滚操作的。
简单的c#事务回滚实例代码
执行多条SQL语句对数据库进行操作,如果某个SQL语句执行中出错,那么要对之前的操作进行回滚,代码比较简单。
oracle 事务 回滚 存储过程
oracle 事务 回滚 存储过程 自用
Sql Server 游标的使用 事务的使用
SQLServer 存储过程 游标的使用方法 事务的使用方法


疑难问题
