跟小D每日学口语
摘要: 我们今天主要向大家介绍的是SQL Server数据库锁,以及对引入SQL Server数据锁的原因以及对锁的区分类别的两种方法的介绍,以下就是具体内容的描述,希望在你今后的学习中会有所帮助。一. 为什么要引入锁当多个用户同时对数据库的并发操作时会带来以下数据不一致的问题:丢失更新A,B两个用户读同一数据并进行修改,其中一个用户的修改结果破坏了另一个修改的结果,比如订票系统脏读A用户修改了数据,随后B用户又读出该数据,但A用户因为某些原因取消了对数据的修改,数据恢复原值,此时B得到的数据就与数据库内的数据产生了不一致不可重复读A用户读取数据,随后B用户读出该数据并修改,此时A用户再读取数据时发现 阅读全文
posted @ 2011-08-02 23:14 Danny Chen 阅读(355) 评论(0) 推荐(0) 编辑
摘要: 在使用MSSql的时候,在多用户的情况下不免要进行并发控制。微软提供了锁机制。这里锁分为两个部分,一个是锁的范围(行锁、页面锁、表锁),另一个是锁的粒度(共享锁、持有锁等)在锁定数据的时候要配合锁的范围和粒度。例如 select * from Table with(RowLock,XLock) where ID=1 就可以将Table的一行设置独占锁。一般情况下在事务的开始可以先使用Update操作一个表的行进行加独占锁。还可以使用应用程序锁来防止多客户端同时执行某个操作。创建应用程序锁 exec SP_GetAppLock @Resource=‘锁名',@LockMode=' 阅读全文
posted @ 2011-08-02 23:12 Danny Chen 阅读(2293) 评论(0) 推荐(0) 编辑