sqlserver2008锁表语句详解(锁定数据库一个表)

回头看帖

回头看帖

2016-02-19 10:01

下面是个超简单的sqlserver2008锁表语句详解(锁定数据库一个表)教程,图老师小编精心挑选推荐,大家行行好,多给几个赞吧,小编吐血跪求~

锁定数据库的一个表
代码如下:

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 将在整个表上置排它锁直至该命令或事务结束。这将防止其他进程读取或修改表中的数据。

(本文来源于图老师网站,更多请访问http://m.tulaoshi.com/bianchengyuyan/)

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

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

(本文来源于图老师网站,更多请访问http://m.tulaoshi.com/bianchengyuyan/)

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

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

ROWLOCK 强制使用行锁

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

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

注意: 锁定数据库的一个表的区别
代码如下:

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

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

展开更多 50%)
分享

猜你喜欢

sqlserver2008锁表语句详解(锁定数据库一个表)

编程语言 网络编程
sqlserver2008锁表语句详解(锁定数据库一个表)

SQLServer2005与SQLServer2008数据库同步图文教程

编程语言 网络编程
SQLServer2005与SQLServer2008数据库同步图文教程

s8lol主宰符文怎么配

英雄联盟 网络游戏
s8lol主宰符文怎么配

一条sql 语句搞定数据库分页

ASP
一条sql 语句搞定数据库分页

sqlserver2008自动发送邮件

编程语言 网络编程
sqlserver2008自动发送邮件

lol偷钱流符文搭配推荐

英雄联盟 网络游戏
lol偷钱流符文搭配推荐

详解SQLServer 2008 R2数据库SSAS建模及扩展能力

编程语言 网络编程
详解SQLServer 2008 R2数据库SSAS建模及扩展能力

如何对MySQL数据库表进行锁定

编程语言 网络编程
如何对MySQL数据库表进行锁定

lolAD刺客新符文搭配推荐

英雄联盟
lolAD刺客新符文搭配推荐

用html5的canvas画布绘制贝塞尔曲线完整代码

用html5的canvas画布绘制贝塞尔曲线完整代码

xbox无法登陆错误0x800488AB解决办法

xbox无法登陆错误0x800488AB解决办法
下拉加载更多内容 ↓