`
Harold_xlp
  • 浏览: 154760 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

Sql Server锁表LOCK设置

阅读更多

Sql Server锁表就限制不同的事物在同一时间内不允许同时操作一张表,实例很简单,可以用select来锁定整张表,那别人就不可能更新或是读取表的记录。

select*from dbo.Employee with(holdlock);with关键字来设置锁表的方式。

下面是with括号内关键字的书名:
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事务隔离级别
 

对于tabllockx,在事物未提交前,连读取都是阻塞的,直到另一事物提交后才可以读取,这样就保证了数据的一致性。


本文来自: 高校自动化网(Www.zdh1909.com) 详细出处参考(转载请保留本链接):http://www.zdh1909.com/html/sql/11423.html

分享到:
评论

相关推荐

    SQL Server上的一个奇怪的Deadlock及其分析方法

    SQL Server上的一个奇怪的Deadlock及其分析方法

    SQL Server数据库查询速度慢原因及优化方法

    将SQL Server max server memory服务器配置选项配置为物理内存的1.5倍(虚拟内存大小设置的一半)。 7、增加服务器CPU个数;但是必须 明白并行处理串行处理更需要资源例如内存。使用并行还是串行程是MsSQL自动评估...

    sqlserver snowflake 函数

    使用c# 编写的 sqlserver udf 雪花函数 编译环境为 .net framework 4.5 目标数据库为 sqlserver2012 实际可以在 sqlserver2012-2019 上发布使用 注: 1. 需要开启多个实例权限 2. 需要开启单数据库信任 3. 该程序...

    SQL Server Blocking and Deadlock

    SQL SERVER 的阻塞和死锁,讲解的比较详细,可以参考看看

    Beginning T-SQL with Microsoft SQL Server 2005 and 2008

    The SQL Server client tools must be installed on your desktop computer and the SQL Server relational database server must be installed on either your desktop computer or on a remote server with ...

    Pro.SQL.Server.Wait.Statistics.1484211405

    Pro SQL Server Wait Statistics is a practical guide for analyzing and troubleshooting SQL Server performance using wait statistics. Whether you are new to wait statistics, or already familiar with ...

    Pro.SQL.Server.Internals

    Improve your ability to develop, manage, and troubleshoot SQL Server solutions by learning how different components work “under the hood,” and how they communicate with each other. The detailed ...

    Inside Microsoft SQL Server 2000

    1. The Evolution of Microsoft SQL Server: 1989 to 2000 [加入我的離線書架] . SQL Server: The Early Years . Ron's Story . Kalen's Story . Microsoft SQL Server Ships . Development Roles Evolve . OS...

    Pro SQL Server 2019 Wait Statistics, 2nd Edition.pdf

    以下是使用等待统计信息分析SQLServer性能并排除故障的实用指南。学习如何准确地确定查询运行缓慢的原因。测量每个瓶颈所消耗的时间,以便您可以首先集中精力进行最大的改进。此版本被更新,以涵盖查询存储中等待...

    浅析Sql server锁,独占锁,共享锁,更新锁,乐观锁,悲观锁

    执行数据更新命令,即INSERT、 UPDATE 或DELETE 命令时,SQL Server 会自动使用独占锁。但当对象上有其它锁存在时,无法对其加独占锁。独占锁一直到事务结束才能被释放。 •共享锁(Shared Lock)共享锁锁定的资源...

    sql_server_2000_lock.rar_查杀锁

    sql server 2000 查杀锁

    完全剖析Microsoft SQL Server 7.0

    鎖定管理員(Lock Manager) . 使用者資料的鎖定型別 . 鎖定相容性 . 結合連線(Bound Connection) . 列階層與分頁階層鎖定 . 鎖定提示(Hints)與追蹤旗標(Trace Flags) . 總結 第四部分 效能與調整篇 14...

    查看Sql Server被锁的表以及解锁

    查看被锁表:  select spId  from master..SysProcesses  where db_Name(dbID) = '数据库名称'  and spId <> @@SpId  and dbID <> 0  解除锁:  exec ('Kill '+cast(@spid as varchar)...

    sql server常用的服务器数据库状态查询脚本

    exec sp_lock EXEC sp_helpdb dbcc sqlperf(logspace) --查看当前数据库服务器名(xp_getnetname、HOST_NAME()) EXEC master..xp_getnetname --查看服务器上所有Windows本地组的存储过程如下 EXEC master..xp_...

    在SQL Server里为什么我们需要更新锁

     一般来说,当执行UPDATE语句时,SQL Server会用到更新锁(Update Lock)。如果你查看对应的执行计划,你会看到它包含3个部分  读取数据  计算新值  写入数据  在查询计划的第1部分,SQL Server初始...

    为什么我们需要在SQL Server里更新锁

    一般来说,当执行UPDATE语句时,SQL Server会用到更新锁(Update Lock)。如果你查看对应的执行计划,你会看到它包含3个部分: 读取数据 计算新值 写入数据 在查询计划的第1部分,SQL Server初始读取要修改的数据,...

    Pro SQL Server Wait Statistics(Apress,2015)

    Pro SQL Server Wait Statistics is a practical guide for analyzing and troubleshooting SQL Server performance using wait statistics. Whether you are new to wait statistics, or already familiar with ...

    un lock(数据库解锁).sql

    数据库解锁通脚本,通过查询锁的级别,来观察和解锁数据表。

    Sqlserver死锁处理(比较好用)

    exec p_lockinfo 0,1 --*/ create proc p_lockinfo @kill_lock_spid bit=1, --是否杀掉死锁的进程,1 杀掉, 0 仅显示 @show_spid_if_nolock bit=1 --如果没有死锁的进程,是否显示正常进程信息,1 显示,0 不显示

    sql语句优化之SQL Server(详细整理)

    MS SQL Server查询优化方法 查询速度慢的原因很多,常见如下几种 1、没有索引或者没有用到索引(这是查询慢最常见的问题,是程序设计的缺陷) 2、I/O吞吐量小,形成了瓶颈效应。 3、没有创建计算列导致查询不优化。...

Global site tag (gtag.js) - Google Analytics