Ado.NET 系列quiz 关于事务隔离级别
发表于:2007-07-01来源:作者:点击数:
标签:
问题的提出: 有些人为了避免事务并发问题,于是把事务的隔离级别设置为最高级别 Serilizable,结果意想不到的问题发生了。 假设有一张表 t1 里面只有一个字段 field2 varchar(20) 类型的。 他在代码重执行了一下一段代码: set transaction isolation level
问题的提出:
有些人为了避免事务并发问题,于是把事务的隔离级别设置为最高级别 Serilizable,结果意想不到的问题发生了。
假设有一张表 t1
里面只有一个字段 field2 varchar(20) 类型的。
他在代码重执行了一下一段代码:
set transaction isolation level serializable
begin tran
select * from t1
waitfor delay @#00:00:30@#
insert into t1 values(@#123@#)
if @@error=0
commit tran
else
rollback tran
问题:
1。先不要急着去执行这段代码,像一下这段代码多个人同时执行会有什么问题
2。他违反了
数据库事务设计的那些原则
解决之后,你就会发现事务使用不当,很容易发生问题,甚至严重的后果。
原文转自:http://www.ltesting.net