sqlserver锁大全

锁定提示                                 描述  
HOLDLOCK        将共享锁保留到事务完成,而不是在相应的表、行或数据页不再需要时就立即释放锁。HOLDLOCK        等同于        SERIALIZABLE。        
NOLOCK        不要发出共享锁,并且不要提供排它锁。当此选项生效时,可能会读取未提交的事务或一组在读取中间回滚的页面。有可能发生脏读。仅应用于SELECT语句。        
PAGLOCK        在通常使用单个表锁的地方采用页锁。        
READCOMMITTED        用与运行在提交读隔离级别的事务相同的锁语义执行扫描。默认情况下,SQL        Server        2000        在此隔离级别上操作。        
READPAST        跳过锁定行。此选项导致事务跳过由其它事务锁定的行(这些行平常会显示在结果集内),而不是阻塞该事务,使其等待其它事务释放在这些行上的锁。READPAST        锁提示仅适用于运行在提交读隔离级别的事务,并且只在行级锁之后读取。仅适用于        SELECT        语句。        
READUNCOMMITTED        等同于        NOLOCK。        
REPEATABLEREAD        用与运行在可重复读隔离级别的事务相同的锁语义执行扫描。        
ROWLOCK        使用行级锁,而不使用粒度更粗的页级锁和表级锁。        
SERIALIZABLE        用与运行在可串行读隔离级别的事务相同的锁语义执行扫描。等同于        HOLDLOCK。        
TABLOCK        使用表锁代替粒度更细的行级锁或页级锁。在语句结束前,SQL        Server        一直持有该锁。但是,如果同时指定        HOLDLOCK,那么在事务结束之前,锁将被一直持有。        
TABLOCKX        使用表的排它锁。该锁可以防止其它事务读取或更新表,并在语句或事务结束前一直持有。        
UPDLOCK        读取表时使用更新锁,而不使用共享锁,并将锁一直保留到语句或事务的结束。UPDLOCK        的优点是允许您读取数据(不阻塞其它事务)并在以后更新数据,同时确保自从上次读取数据后数据没有被更改。        
XLOCK        使用排它锁并一直保持到由语句处理的所有数据上的事务结束时。可以使用        PAGLOCK        或        TABLOCK        指定该锁,这种情况下排它锁适用于适当级别的粒度

sqlserver锁大全

时间: 2024-11-05 13:18:34

sqlserver锁大全的相关文章

sqlserver锁表、解锁、查看锁表

? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 面演示一个实例,它使用sys.dm_tran_locks动态视图监视数据库中锁的活动. 打开一个查询窗口,执行如下语句: USE AdventureWorks BEGIN TRAN SELECT ProductID, ModifiedDate FROM Production.ProductDocument WITH (TABLOCKX) 打开另一个查询窗口

转载 sqlserver 锁的概念

SQL server共享锁,排他锁,更新锁的使用   上一篇 / 下一篇  2009-11-08 00:29:17 / 个人分类:数据库 查看( 889 ) / 评论( 0 ) / 评分( 0 / 0 ) 锁的概述 一. 为什么要引入锁 多个用户同时对数据库的并发操作时会带来以下数据不一致的问题: 丢失更新 A,B两个用户读同一数据并进行修改,其中一个用户的修改结果破坏了另一个修改的结果,比如订票系统 脏读 A用户修改了数据,随后B用户又读出该数据,但A用户因为某些原因取消了对数据的修改,数据恢

SQLserver锁和事务隔离级别的比较与使用(转)

SQLserver锁和事务隔离级别的比较与使用(转) http://www.cnblogs.com/chenlulouis/archive/2010/12/06/1898014.html http://www.cnblogs.com/CareySon/p/3509030.html

sqlserver锁机制详解(sqlserver查看锁)

简介 在SQL Server中,每一个查询都会找到最短路径实现自己的目标.如果数据库只接受一个连接一次只执行一个查询.那么查询当然是要多快好省的完成工作.但对于 大多数数据库来说是需要同时处理多个查询的.这些查询并不会像绅士那样排队等待执行,而是会找最短的路径执行.因此,就像十字路口需要一个红绿灯那 样,SQL Server也需要一个红绿灯来告诉查询:什么时候走,什么时候不可以走.这个红绿灯就是锁. 图1.查询可不会像绅士们那样按照次序进行排队 为什么需要锁 在开始谈锁之前,首先要简单了解一下事

SqlServer锁机制与实践

在如今这个云计算,大数据,移动互联网大行其道的时代,各种NoSQL数据库MongoDb.redis.HBase等使用的越来越广泛,大有替代关系型数据库的趋势.但是关系型数据库真的已经落伍了吗?答案是否定的.非关系型数据库不支持ACID属性,不支持事务,无法适应复杂查询的缺点.关系型数据库凭借其强一致性的特点,注定了在类似银行转账,订单支付等场景中,还是唯一的选择.众所周知,SQLSERVER通过锁来提供ACID属性,处理并发访问,本文尝试通过对锁机制的一些学习,让我们明白数据库查询超时,死锁等问

sqlserver锁和隔离级别

概念: 常见的锁相关概念参见 sqlserver中的锁 隔离级别: 未提交读,读取到未提交的数据 已提交读, 1,悲观模式(is_read_committed_snapshot_on=0,默认设置),传统的已提交读,只能读取到已经提交的数据.读写会产生冲突. 2,乐观模式(is_read_committed_snapshot_on=1),加入行版本控制,只能读取到已提交的数据,读写不会产生冲突,并发性更好,生产环境需要测试. 可重复读,一个事务中,多次读取相同的一条或者几条数据,看到的结果是一样

SqlServer 函数 大全

sql server使用convert来取得datetime日期数据 sql server使用convert来取得datetime日期数据,以下实例包含各种日期格式的转换 语句及查询结果: Select CONVERT(varchar(100), GETDATE(), 0): 05 16 2006 10:57AM Select CONVERT(varchar(100), GETDATE(), 1): 05/16/06 Select CONVERT(varchar(100), GETDATE(),

取消sqlserver 锁表

select request_session_id spid,OBJECT_NAME(resource_associated_entity_id) tableName from sys.dm_tran_locks where resource_type='OBJECT' declare @spid int Set @spid = 52 --锁表进程 declare @sql varchar(1000)set @sql='kill '+cast(@spid as varchar)exec(@sql

SqlServer操作大全

一.基础1.说明:创建数据库CREATE DATABASE database-name2.说明:删除数据库drop database dbname3.说明:备份sql server--- 创建 备份数据的 deviceUSE masterEXEC sp_addumpdevice 'disk', 'testBack', 'c:\mssql7backup\MyNwind_1.dat'--- 开始 备份BACKUP DATABASE pubs TO testBack4.说明:创建新表create ta