SQL Server 2000锁的说明

2010年07月08日 00:33 by:佚名

SQL Server 2000支持的表级锁:

  1. HOLDLOCK 持有共享锁,直到整个事务完成,应该在被锁对象不需要时立即释放,等于SERIALIZABLE事务隔离级别 
  2. NOLOCK 语句执行时不发出共享锁,允许脏读 ,等于 READ UNCOMMITTED事务隔离级别 
  3. PAGLOCK 在使用一个表锁的地方用多个页锁 
  4. READPAST 让SQL Server跳过任何锁定行,执行事务,适用于READ UNCOMMITTED事务隔离级别只跳过RID锁,不跳过页,区域和表锁 
  5. ROWLOCK 强制使用行锁 
  6. TABLOCKX 强制使用独占表级锁,这个锁在事务期间阻止任何其他事务使用这个表 
  7. UPLOCK 强制在读表时使用更新而不用共享锁 

注意:锁定数据库的一个表的区别

  1. SELECT * FROM table WITH (HOLDLOCK) 其他事务可以读取表,但不能更新删除 
  2. SELECT * FROM table WITH (TABLOCKX) 其他事务不能读取表,更新和删除

应用程序锁:

应用程序锁就是客户端代码生成的锁,而不是SQL Server本身生成的锁,处理应用程序锁的两个过程:

  1. sp_getapplock 锁定应用程序资源 
  2. sp_releaseapplock 为应用程序资源解锁 

 

标签:SQL锁