sql server 锁表语句分享

来源:asp之家 时间:2012-02-12 15:49:20 

锁定数据库的一个表

SELECT * FROM table WITH (HOLDLOCK)

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

SELECT * FROM table WITH (HOLDLOCK)

其他事务可以读取表,但不能更新删除

SELECT * FROM table WITH (TABLOCKX)

其他事务不能读取表,更新和删除

SELECT 语句中“加锁选项”的功能说明

SQL Server提供了强大而完备的锁机制来帮助实现数据库系统的并发性和高性能。用户既能使用SQL Server的缺省设置也可以在select 语句中使用“加锁选项”来实现预期的效果。 本文介绍了SELECT语句中的各项“加锁选项”以及相应的功能说明。

功能说明: 

NOLOCK(不加锁)

此选项被选中时,SQL Server 在读取或修改数据时不加任何锁。 在这种情况下,用户有可能读取到未完成事务(Uncommited Transaction)或回滚(Roll Back)中的数据, 即所谓的“脏数据”。

HOLDLOCK(保持锁)

此选项被选中时,SQL Server 会将此共享锁保持至整个事务结束,而不会在途中释放。

UPDLOCK(修改锁)

此选项被选中时,SQL Server 在读取数据时使用修改锁来代替共享锁,并将此锁保持至整个事务或命令结束。使用此选项能够保证多个进程能同时读取数据但只有该进程能修改数据。

TABLOCK(表锁)

此选项被选中时,SQL Server 将在整个表上置共享锁直至该命令结束。 这个选项保证其他进程只能读取而不能修改数据。

PAGLOCK(页锁)

此选项为默认选项, 当被选中时,SQL Server 使用共享页锁。

TABLOCKX(排它表锁)

此选项被选中时,SQL Server 将在整个表上置排它锁直至该命令或事务结束。这将防止其他进程读取或修改表中的数据。
HOLDLOCK 持有共享锁,直到整个事务完成,应该在被锁对象不需要时立即释放,等于SERIALIZABLE事务隔离级别

  NOLOCK 语句执行时不发出共享锁,允许脏读 ,等于 READ UNCOMMITTED事务隔离级别

  PAGLOCK 在使用一个表锁的地方用多个页锁

  READPAST 让sql server跳过任何锁定行,执行事务,适用于READ UNCOMMITTED事务隔离级别只跳过RID锁,不跳过页,区域和表锁

  ROWLOCK 强制使用行锁

  TABLOCKX 强制使用独占表级锁,这个锁在事务期间阻止任何其他事务使用这个表

  UPLOCK 强制在读表时使用更新而不用共享锁

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

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

  SELECT * FROM table WITH (TABLOCKX) 其他事务不能读取表,更新和删

标签:SQL锁表
0
投稿

猜你喜欢

  • 将HTML表单数据存储为XML格式

    2007-08-23 13:04:00
  • Web 2.0 框架发布

    2008-03-25 09:40:00
  • 虾米网今年三月所用加密解密函数

    2010-08-09 12:54:00
  • asp如何远程注册DLL

    2010-06-16 09:58:00
  • asp测字符串长度及截取定长字符串汉字的处理

    2007-10-12 13:14:00
  • 如何在网页显示英语音标(附实例)

    2010-01-12 17:07:00
  • 一直闪烁变色的超级链接代码

    2008-02-27 13:08:00
  • JavaScript 获取客户端计算机硬件及系统信息

    2009-01-13 17:59:00
  • SQL事务用法begin tran,commit tran和rollback tran的用法

    2012-01-05 18:58:51
  • 三种数据库利用SQL语句进行高效果分页

    2008-11-28 14:52:00
  • MySql常用命令总结

    2009-09-16 10:51:00
  • SQL Server 2000如何设置会话上下文信息?

    2010-05-18 18:33:00
  • CSS缩写可以有效的缩小CSS文件的体积

    2009-01-13 18:06:00
  • 超越质检员——看图购beta版的思考

    2009-04-15 12:11:00
  • 浏览器是怎样工作的二:渲染引擎 HTML解析

    2012-05-09 20:34:20
  • 戴尔是如何设计新官网首页的

    2008-07-08 19:02:00
  • 解读HTML:大厦的基石

    2008-12-01 12:57:00
  • asp如何遍历Cookies集合?

    2009-11-08 19:07:00
  • FSO组件之驱动器操作asp源码

    2010-05-03 10:59:00
  • MySQL:使用源码分发版还是二进制分发版

    2009-09-01 10:35:00
  • asp之家 网络编程 m.aspxhome.com