zoukankan      html  css  js  c++  java
  • sql 隔离级别

    • READ UNCOMMITTED---未提交读(事务隔离的最低级别,仅可保证不读取物理损坏的数据)。
    • READ COMMITTED---提交读(SQL Server 默认级别)锁定正在读取的行。
    • REPEATABLE READ---可重复读。锁定所有读取的行
    • SERIALIZABLE---可串行读(事务隔离的最高级别,事务之间完全隔离)锁定表。
    1. begin try  
    2.     begin tran  
    3.         insert into dbo.TransTestTable values (66,'66');  
    4.         update dbo.TransTestTable set [Name] = '77' where [Id] = 66;  
    5.         --RAISERROR ('Error raised in TRY block.',16,1);  
    6.     commit tran  
    7. end try  
    8. begin catch  
    9.     rollback tran  
    10. end catch  

    CREATE DATABASE test
    GO
    --创建测试用表
    USE test
    GO
    CREATE TABLE 帐户表
    (
    帐号 CHAR(4),
    余额 INT
    )
    GO
    INSERT 帐户表
    SELECT 'A',100
    UNION ALL
    SELECT 'B',200
    select * from 帐户表;
    delete from 帐户表 where 帐号='B'


    --脏读
    BEGIN TRAN
    UPDATE 帐户表 SET 余额=100 WHERE 帐号='A'
    WAITFOR DELAY '00:00:10' --等待10秒
    UPDATE 帐户表 SET 余额=104 WHERE 帐号='A'
    COMMIT TRAN


    SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
    BEGIN TRAN
    SELECT 余额 FROM 帐户表 WHERE 帐号='A'
    COMMIT TRAN

    -- 不可重复的读
    SET TRANSACTION ISOLATION LEVEL REPEATABLE READ
    --或者 SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
    BEGIN TRAN
    SELECT 余额 FROM 帐户表 WHERE 帐号='A'
    WAITFOR DELAY '00:00:10' --等待10秒
    SELECT 余额 FROM 帐户表 WHERE 帐号='A'
    COMMIT TRAN


    BEGIN TRAN
    UPDATE 帐户表 SET 余额=130 WHERE 帐号='A'
    COMMIT TRAN

    -- 幻读
    SET TRANSACTION ISOLATION LEVEL READ COMMITTED
    --或者 SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
    --或者 SET TRANSACTION ISOLATION LEVEL REPEATABLE READ
    BEGIN TRAN
    SELECT * FROM 帐户表
    WAITFOR DELAY '00:00:10' --等待10秒
    SELECT * FROM 帐户表
    COMMIT TRAN

    BEGIN TRAN
    INSERT INTO 帐户表 VALUES('C','300')
    COMMIT TRAN

  • 相关阅读:
    1393 0和1相等串 鸽笼原理 || 化简dp公式
    C. Coin Troubles 有依赖的背包 + 完全背包变形
    D. PolandBall and Polygon BIT + 欧拉公式
    51NOD 1639 绑鞋带 数学
    D. Fedor and coupons 二分暴力
    hdu 4104 Discount
    bnu 51640 Training Plan DP
    hdu 5745 La Vie en rose DP + bitset优化
    hdu 5036 Explosion bitset优化floyd
    1354 选数字 DP背包 + 数学剪枝
  • 原文地址:https://www.cnblogs.com/cxlings/p/2385697.html
Copyright © 2011-2022 走看看