代码改变世界

随笔档案-2013年01月

SQL SERVER乐观锁定和悲观锁定

2013-01-24 10:55 by 假面Wilson, 434 阅读, 收藏, 编辑
摘要: 在实际的多用户并发访问的生产环境里边,我们经常要尽可能的保持数据的一致性。而其中最典型的例子就是我们从表里边读取数据,检查验证后对数据进行修改,然后写回到数据库中。在读取和写入的过程中,如果在多用户并发的环境里边,其他用户已经把你要修改的数据进行了修改是非常有可能发生的情况,这样就造成了数据的不一致性。解决这样的办法,SQL Server提出了乐观锁定和悲观锁定的概念,下边我以一个实例来说明如何使用乐观锁定和悲观锁定来解决这样的问题。/* 建立测试表:Card,代表一个真实的卡库,供用户注册.用户要从里边选出一个未使用的卡,也就是F_Flag=0的卡,给用户注册:更新F_Name,F_Time 阅读全文

SqlServer中的更新锁(UPDLOCK)

2013-01-24 10:49 by 假面Wilson, 21658 阅读, 收藏, 编辑
摘要: UPDLOCK.UPDLOCK 的优点是允许您读取数据(不阻塞其它事务)并在以后更新数据,同时确保自从上次读取数据后数据没有被更改。当我们用UPDLOCK来读取记录时可以对取到的记录加上更新锁,从而加上锁的记录在其它的线程中是不能更改的只能等本线程的事务结束后才能更改.示例:测试:在另一个查询里:BEGIN TRANSACTIONSELECT * FROM myTable WITH (UPDLOCK) WHERE Id in (1,2,3)waitfor delay '00:00:10'update myTableset [Name]='ZZ' whereId 阅读全文
点击右上角即可分享
微信分享提示