`
codsoul
  • 浏览: 212970 次
  • 性别: Icon_minigender_1
  • 来自: 珠海
社区版块
存档分类
最新评论

(转)SQL Server 2008锁表的SQL语句介绍与应用

 
阅读更多
锁一个SQL表的语句是SQL数据库使用者都需要知道的,下面就将为您介绍锁SQL表的语句,希望对您学习锁SQL表方面能有所帮助。

锁定数据库的一个表

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) 其他事务不能读取表,更新和删除

分享到:
评论

相关推荐

    SQLServer常见锁表优化语句.txt

    SQLServer常见锁表优化语句

    sqlserver自动生成sql语句工具sqlserver转oracle

    首先,标题中的"sqlserver自动生成sql语句工具"指的是可以分析SQL Server数据库结构和数据,自动生成对应的SQL创建语句的软件。这种工具通常能帮助数据库管理员快速获取数据库的定义,便于备份、迁移或在其他环境中...

    SQL Server2008修改视图-SQL语句方式.pptx

    SQL Server 2008 修改视图 - SQL 语句方式 在 SQL Server 2008 中,修改视图是通过使用 Alter View 语句来实现的。下面将详细介绍修改视图的语法、实例和注意事项。 修改视图语法 修改视图的基本语法格式为: ...

    SqlServer删除所有表数据语句

    下面我们将介绍如何使用一条 Sql Server 语句删除当前数据库中所有表的数据。 删除所有表数据 删除所有表数据的语句使用了存储过程来实现。首先,我们需要创建一个存储过程 `sp_DeleteAllData`,该过程将删除所有...

    Sqlserver表数据导出成Insert语句的工具

    此工具可以将SQL Server表数据导出成Insert语句。SQL Server的导入导出功能可以导出创建数据库各对象的脚本,却不提供导出目标表的现有数据为Insert语句的功能,此工具可以将SQL Server表数据导出成Insert语句。

    用SQL语句j查SQLServer的表结构

    用SQL语句j查SQLServer的表结构 用SQL语句j查SQLServer的表结构

    SQL Server表数据导出成Insert语句的工具

    "SQL Server表数据导出成Insert语句的工具"是一个专门为此目的设计的应用程序,它能帮助数据库管理员和开发人员高效地生成插入语句,以便在其他数据库中重建同样的数据结构和内容。 1. **数据导出的需求**:在不同...

    VS2010连接SQL Server 2008操作与编程

    本文将深入探讨如何使用VS2010连接到SQL Server 2008进行操作与编程,以及涉及的相关知识点。 首先,要建立VS2010与SQL Server 2008的连接,你需要安装SQL Server Native Client驱动程序,它是SQL Server数据访问...

    SQLServer数据库表中数据导出成SQL语句工具

    针对这个需求,存在一种名为“SQLServer数据库表中数据导出成SQL语句工具”的实用程序,它能够帮助我们高效地完成这项任务。这个工具通常以MHT(Multi-Part/Related)格式提供,这是一种单一文件Web页面存储格式,...

    SQLServer表数据转化为sql语句(表数据搬运,一键快捷导出为insert语句,方便导入到其它库)

    功能: 根据表名、where条件,生成导出数据的SQL语句。(包含insert语句。结果可一键执行,利于数据导出、导入) 参数: @tableName nvarchar(100) --表名 ,@sqlWhere nvarchar(500) --where条件,如'a=''123'' '(传...

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

    本篇文章主要详细解释了如何通过SQL语句来锁定数据库中的一个表,以及各种加锁选项的功能。 1. **HOLDLOCK**: `SELECT * FROM table WITH (HOLDLOCK)` 这个语句会在执行查询的过程中对表施加共享锁,这意味着其他...

    Sql Server ExpressProfiler 监视Sql语句

    1. **事件监视**:你可以设置事件跟踪来捕获各种数据库操作,如T-SQL语句的执行、存储过程调用、锁事件、登录/登出等。这对于理解数据库的性能瓶颈和潜在问题至关重要。 2. **过滤器应用**:ExpressProfiler支持...

    mysql转化成sql server sql转化成mysql工具

    2. 转换规则应用:根据SQL Server的语法特性,工具会将MySQL的SQL语句转化为相应的SQL Server语法。 3. 数据导出:将MySQL中的数据导出为SQL脚本,或者直接导入到SQL Server中。 4. 验证与调整:迁移后,需要验证...

    SQL Server2005基本方法和语句

    ### SQL Server 2005 基本方法...以上介绍了 SQL Server 2005 中的基本方法与常用语句,涵盖了数据库管理与数据操作的核心技能。通过熟练掌握这些知识,可以有效地管理和维护数据库系统,提高数据处理的效率与准确性。

    json转换为SQL server建表脚本

    `SqlConnection` 类用于建立连接,`SqlCommand` 类用于执行SQL语句,而`SqlDataAdapter`和`DataSet` 可以用于填充数据或更新数据库。 4. SQL建表语句:根据JSON数据的结构,你需要生成对应的SQL CREATE TABLE语句。...

    sqlserver表结构导出SQL语句

    导出一个库中的所有表的结构,包括表说明及字段说明

    SQL SERVER 将select数据生成insert语句

    首先,`SELECT INTO` 语句是SQL Server中创建新表并填充数据的一种快速方式。它的基本语法如下: ```sql SELECT column1, column2, ... INTO new_table FROM existing_table WHERE condition; ``` 这个语句会根据...

    sqlserver 批量创建表

    在SQL Server中,批量创建表...总之,SQL Server 2008提供了多种方法来批量创建表和插入数据,可以根据实际需求选择最适合的方法。在处理大量数据时,理解并熟练运用这些技术对于提升数据库管理和维护的效率至关重要。

    将sqlserver表中指定数据转化为insert语句

    在SQL Server中,有时我们需要将现有表中的特定数据导出为INSERT语句,以便在其他数据库或备份中重建这些记录。这通常在迁移数据、创建测试数据或者进行数据备份时非常有用。以下是如何将SQL Server表中指定数据转化...

    SQL语句实现跨Sql server数据库操作实例

    本文介绍了如何使用SQL语句实现在不同的SQL Server实例之间进行数据查询和插入操作的方法。通过具体的示例,展示了如何创建远程服务器别名、执行跨服务器查询以及进行跨服务器数据插入。此外,还介绍了如何配置SQL ...

Global site tag (gtag.js) - Google Analytics