mssql

推荐列表 站点导航

当前位置:首页 > 数据库 > mssql >

sqlserver 锁表语句分享

来源:网络整理  作者:网络  发布时间:2020-12-09 02:03
sqlserver 锁表语句分享,需要的朋友可以参考下...
HOLDLOCK 持有共享锁,直到整个事务完成,应该在被锁对象不需要时立即释放,等于SERIALIZABLE事务隔离级别
UPDLOCK(修改锁)


TABLOCK(表锁)
注意: 锁定数据库的一个表的区别
  TABLOCKX 强制使用独占表级锁,这个锁在事务期间阻止任何其他事务使用这个表



SELECT * FROM table WITH (HOLDLOCK)

NOLOCK(不加锁)
  PAGLOCK 在使用一个表锁的地方用多个页锁



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


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



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


此选项被选中时,SQL Server 将在整个表上置排它锁直至该命令或事务结束。这将防止其他进程读取或修改表中的数据。


TABLOCKX(排它表锁)


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



SELECT * FROM table WITH (HOLDLOCK)



  SELECT * FROM table WITH (TABLOCKX) 其他事务不能读取表,更新和删 此选项为默认选项, 当被选中时,SQL Server 使用共享页锁。
其他事务可以读取表,但不能更新删除

其他事务不能读取表,更新和删除
功能说明: 

  SELECT * FROM table WITH (HOLDLOCK) 其他事务可以读取表,但不能更新删除
锁定数据库的一个表


  READPAST 让sql server跳过任何锁定行,执行事务,适用于READ UNCOMMITTED事务隔离级别只跳过RID锁,不跳过页,区域和表锁
此选项被选中时,SQL Server 在读取数据时使用修改锁来代替共享锁,并将此锁保持至整个事务或命令结束。使用此选项能够保证多个进程能同时读取数据但只有该进程能修改数据。
SELECT * FROM table WITH (TABLOCKX)
此选项被选中时,SQL Server 会将此共享锁保持至整个事务结束,而不会在途中释放。
  ROWLOCK 强制使用行锁


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

相关热词:

本站内容来源于网络,如有侵权请与我们联系,我们会及时删除,我们深感抱歉!
注:本站所有信息仅供用于网络技术学习参考,学习中请遵循相关法律法规!

本文地址: https://www.juheyunku.com/sql/mssql/1628.shtml

最新文章
sql server 关于设置null的一 sql server 关于设置null的一

时间:2020-12-28

详解SQL游标的用法 详解SQL游标的用法

时间:2020-12-27

vs code连接sql server数据库步 vs code连接sql server数据库步

时间:2020-12-27

图书管理系统的sqlserver数 图书管理系统的sqlserver数

时间:2020-12-25

详解SQL 通配符 详解SQL 通配符

时间:2020-12-25

sql四大排名函数之ROW_NUM sql四大排名函数之ROW_NUM

时间:2020-12-25

SQLServer数据库处于恢复挂 SQLServer数据库处于恢复挂

时间:2020-12-24

Win10 64位安装个人版SQL20 Win10 64位安装个人版SQL20

时间:2020-12-24

Copyright © www.juheyunku.com      关于 | 合作 | 声明 | 联系 | 更新 | 地图 | Tags

sqlserver 锁表语句分享

2020-12-09 编辑:网络

HOLDLOCK 持有共享锁,直到整个事务完成,应该在被锁对象不需要时立即释放,等于SERIALIZABLE事务隔离级别
UPDLOCK(修改锁)


TABLOCK(表锁)
注意: 锁定数据库的一个表的区别
  TABLOCKX 强制使用独占表级锁,这个锁在事务期间阻止任何其他事务使用这个表



SELECT * FROM table WITH (HOLDLOCK)

NOLOCK(不加锁)
  PAGLOCK 在使用一个表锁的地方用多个页锁



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


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



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


此选项被选中时,SQL Server 将在整个表上置排它锁直至该命令或事务结束。这将防止其他进程读取或修改表中的数据。


TABLOCKX(排它表锁)


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



SELECT * FROM table WITH (HOLDLOCK)



  SELECT * FROM table WITH (TABLOCKX) 其他事务不能读取表,更新和删 此选项为默认选项, 当被选中时,SQL Server 使用共享页锁。
其他事务可以读取表,但不能更新删除

其他事务不能读取表,更新和删除
功能说明: 

  SELECT * FROM table WITH (HOLDLOCK) 其他事务可以读取表,但不能更新删除
锁定数据库的一个表


  READPAST 让sql server跳过任何锁定行,执行事务,适用于READ UNCOMMITTED事务隔离级别只跳过RID锁,不跳过页,区域和表锁
此选项被选中时,SQL Server 在读取数据时使用修改锁来代替共享锁,并将此锁保持至整个事务或命令结束。使用此选项能够保证多个进程能同时读取数据但只有该进程能修改数据。
SELECT * FROM table WITH (TABLOCKX)
此选项被选中时,SQL Server 会将此共享锁保持至整个事务结束,而不会在途中释放。
  ROWLOCK 强制使用行锁


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

本站内容来源于网络,如有侵权请与我们联系,我们会及时删除,我们深感抱歉!
注:本站所有信息仅供学习参考!
本文地址为 https://www.juheyunku.com/sql/mssql/1628.shtml

相关文章

风云图片

推荐阅读

返回mssql频道首页