zoukankan      html  css  js  c++  java
  • 事务:共享锁的运用

    --user 1
    BEGIN TRANSACTION
    DECLARE @dt VARCHAR(50)
    SELECT * FROM Class_Info  WITH (HOLDLOCK)
    /*show time*/
    SELECT @dt=CONVERT(VARCHAR,GETDATE(),21)
    PRINT 'u1 lock time:'+@dt

    WAITFOR DELAY '00:00:15'

    SELECT @dt=CONVERT(VARCHAR,GETDATE(),21)

    PRINT 'u1 unlock time:'+@dt
    COMMIT TRANSACTION


    --user 2

    BEGIN TRANSACTION
    DECLARE @dt2 VARCHAR(50)
    SELECT @dt2=CONVERT(VARCHAR,GETDATE(),21)
    PRINT 'u2 begin tran:'+@dt2
    SELECT * FROM Class_Info

    SELECT @dt2=CONVERT(VARCHAR,GETDATE(),21)
    PRINT 'u2 begin selct:'+@dt2


    DELETE FROM Class_Info WHERE ID=19
    SELECT @dt2=CONVERT(VARCHAR,GETDATE(),21)
    PRINT 'u2 begin delete:'+@dt2

    ROLLBACK  TRANSACTION

    -----------------------------执行结果---------------------


    (20 行受影响)
    u1 lock time:2010-08-04 10:59:49.780
    u1 unlock time:2010-08-04 11:00:04.777

    u2 begin tran:2010-08-04 10:59:51.077

    (20 行受影响)
    u2 begin selct:2010-08-04 10:59:51.077
    19

    (1 行受影响)
    DELETE

    (1 行受影响)
    u2 begin delete:2010-08-04 11:00:04.777

     

  • 相关阅读:
    centos 查看硬盘使用情况
    查看centos内存命令
    VS2008编译运行时出现“外部组件发生异常”错误的解决方法
    20170307-1
    20170307
    centos7安装配置git
    Git理解笔记3
    Git理解笔记2
    Git理解笔记1
    php-设计模式
  • 原文地址:https://www.cnblogs.com/diego0404/p/1791826.html
Copyright © 2011-2022 走看看