zoukankan      html  css  js  c++  java
  • SQL Server中“加锁选项”的功能说明

    1   如何锁一个表的某一行  
       
       
      A   连接中执行  
       
      SET   TRANSACTION   ISOLATION   LEVEL   REPEATABLE   READ  
       
      begin   tran  
       
      select   *   from   tablename   with   (rowlock)   where   id=3  
       
      waitfor   delay   '00:00:05'  
       
      commit   tran  
       
      B连接中如果执行  
       
      update   tablename   set   colname='10'   where   id=3   --则要等待5秒  
       
      update   tablename   set   colname='10'   where   id<>3   --可立即执行  
       
      2   锁定数据库的一个表  
       
      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   将在整个表上置排它锁直至该命令或事务结束。这将防止其他进程读取或修改表中的数据。  
  • 相关阅读:
    python运行出现TypeError: super() takes at least 1 argument (0 given)错误
    python使用Pyinstaller打包
    python 将字符串中的unicode字符码转换成字符
    python 复制列表
    AetherUpload大文件传输
    phpstom激活
    BusyBox telnetd配置
    MDK链接脚本错误
    利用mass storage class 做免驱动usb设备.
    BMP图片的解析,关于压缩方式
  • 原文地址:https://www.cnblogs.com/a311300/p/1673372.html
Copyright © 2011-2022 走看看