`

sqlserver 锁表语句分享

阅读更多

锁定数据库的一个表

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) 其他事务不能读取表,更新和删
详细出处参考:http://www.jb51.net/article/29580.htm

分享到:
评论

相关推荐

    SQL修复数据表语句

    ### SQL修复数据表语句详解 #### 一、概述 在数据库管理中,由于各种原因(如硬件故障、软件bug等)可能导致数据表出现一致性错误,进而影响到数据的完整性和系统的正常运行。为了恢复数据表的一致性,SQL提供了...

    sqlserver自动创建表

    excel自动创建sqlserver表语句,不要在wps打开,用office打开,否则无法运行宏!

    SqlServer与Oracle差异

    【SqlServer与Oracle差异】 在数据库领域,SqlServer和Oracle都是广泛使用的数据库管理系统,它们各自拥有独特的特性和优势。本文将从概念、数据类型、语法等方面对比两者的差异。 1. **概念上的区别** - Oracle...

    MS SQL Server数据库快捷生成表结构语句

    在SQL Server数据库管理中,生成表结构语句是一项常见的任务,尤其在数据库设计、备份或迁移的场景下。本文将详细讲解如何利用SQL Server管理工具和T-SQL语句来快速生成表结构的创建语句。 一、SQL Server ...

    中国省市城市sql表语句和xml语句

    标题中的“中国省市城市sql表语句和xml语句”涉及到的是数据库管理和数据存储的知识,主要涵盖中国的省级和市级行政区域的数据表示。在IT行业中,管理和存储地理信息数据是常见的需求,尤其在构建地理位置相关的应用...

    K3 WISE-职员表和部门表语句相关的SQL语句.zip

    K3 WISE-职员表和部门表语句相关的SQL语句,方便大家提取职员与部门的相关信息的sql语句。

    sql server

    #### 删除重复的创建表语句 在提供的SQL脚本中出现了重复的创建表语句,这是不合理的。正确的做法应该是在确定表不存在的情况下创建表,或者先删除旧表再创建新表。 **示例:** ```sql IF OBJECT_ID('Tb_Student'...

    VB注册表语句应用示例

    "VB注册表语句应用示例"这个主题旨在帮助开发者理解和实践如何使用VB来读取、写入和修改注册表。 注册表是Windows系统中的核心数据库,包含了系统设置、用户配置、程序安装信息等。VB提供了一些API函数和类库,使得...

    quartz-数据库建表语句.zip

    在部署Quartz时,根据选用的数据库(如MySQL、Oracle、SQL Server等),需要将"quartz-数据库建表语句.zip"中的相应SQL脚本运行在数据库上,以创建这些必要的表。这一步是Quartz配置中的关键部分,确保Quartz能够...

    数据库建表操作SQL语句大全

    ### 数据库建表操作SQL语句详解 #### 一、新建表 新建表是数据库管理中最基础的操作之一,用于创建新的数据存储结构。在SQL语言中,`CREATE TABLE`语句用于定义表的结构。 **语法示例**: ```sql CREATE TABLE ...

    表语从句练习与解析.pdf

    表语从句是一种复合句,它在句子中作为系动词(如be,seem,become等)的表语,通常用来解释或说明主语的性质、状态或特征。在给定的练习题中,我们可以看到多个关于如何正确使用表语从句的例子。 首先,我们来分析...

    idea创建ssm(spring+springMVC+mybatis+mysql+maven)基础登录框架源码含sql表语句

    3. **Mybatis**:Mybatis是一个优秀的持久层框架,它支持定制化SQL、存储过程以及高级映射。Mybatis避免了几乎所有的JDBC代码和手动设置参数以及获取结果集。它允许开发者自由地编写SQL,同时提供了强大的映射框架,...

    Oracle中查询哪个存储过程中引用包含T-USER-INFO表语句的命令脚本

    Oracle中查询哪个存储过程中引用包含T_USER_INFO表语句的命令脚本 1. 深度扫描:此脚本不局限于表面查询,而是深入PL/SQL代码块,确保无遗漏地找出所有直接或间接引用"T_USER_INFO"表的存储过程及函数,无论是排查...

    高中英语语法精讲之表语从句PPT课件.pptx

    表语从句可以是名词性从句的一种,可以充当复合句中的表语。 二、构成和特点 表语从句的构成通常为:主语 + 系动词 + 引导词 + 简单句。其中,系动词可以是be、feel、seem、look、appear、sound、taste、smell等,...

    高一英语表语从句讲解1PPT课件.pptx

    名词性从句是其中一种特殊的从句,它们在复合句中起到名词的作用,可以作为主语、宾语、表语或同位语。名词性从句分为四种类型:主语从句、宾语从句、表语从句和同位语从句。 **表语从句**是名词性从句的一种,它...

    excel动态创建hive表语句模板.xlsx

    excel 根据字段创建 hive表

    样式表语法总结_Qt样式表语法总结_Qt样式表_QT_

    **Qt样式表语法总结** Qt样式表(QSS,Qt Style Sheet)是Qt框架提供的一种强大的界面美化工具,类似于Web开发中的CSS,用于控制Qt应用程序的外观和布局。通过使用Qt样式表,开发者可以轻松地改变窗口、按钮、...

Global site tag (gtag.js) - Google Analytics