zoukankan      html  css  js  c++  java
  • SELECT 语句中“加锁选项”的功能说明(转贴)

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

    如果想对一个表进行整体加锁,则可以执行:
    select top (1) * from tableName where (tablockx)

    功能说明: 
    NOLOCK(不加锁)
    此选项被选中时,SQL Server 在读取或修改数据时不加任何锁。 在这种情况下,用户有可能读取到未完成事务(Uncommited Transaction)或回滚(Roll Back)中的数据, 即所谓的“脏数据”。
    
    HOLDLOCK(保持锁)
    此选项被选中时,SQL Server 会将此共享锁保持至整个事务结束,而不会在途中释放。
    
    UPDLOCK(修改锁)
    此选项被选中时,SQL Server 在读取数据时使用修改锁来代替共享锁,并将此锁保持至整个事务或命令结束。使用此选项能够保证多个进程能同时读取数据但只有该进程能修改数据。
    
    TABLOCK(表锁)
    此选项被选中时,SQL Server 将在整个表上置共享锁直至该命令结束。 这个选项保证其他进程只能读取而不能修改数据。
    
    PAGLOCK(页锁)
    此选项为默认选项, 当被选中时,SQL Server 使用共享页锁。
    
    TABLOCKX(排它表锁)
    此选项被选中时,SQL Server 将在整个表上置排它锁直至该命令或事务结束。这将防止其他进程读取或修改表中的数据。
  • 相关阅读:
    docker 入门(docker 镜像 、容器、仓库)
    windows 安装 docker
    关于go mod 的使用和goland 配置 go mod
    mac 安装docker
    vm 将宿主机文件夹 映射至 虚拟机
    centos 关于yum无法使用
    mac 安装 swoole 可能会出现的错误
    BZOJ3378:[USACO]MooFest 狂欢节(树状数组)
    BZOJ3110:[ZJOI2013]K大数查询(整体二分)
    BZOJ4170:极光(CDQ分治)
  • 原文地址:https://www.cnblogs.com/zhaoguan_wang/p/974257.html
Copyright © 2011-2022 走看看