zoukankan      html  css  js  c++  java
  • 事务

    -- ==============================================
    -- title:事务处理
    -- author:ylbtech
    -- pubdate:22:24 2012/12/24
    -- ==============================================
    go
    -- ==============================================
    -- 1,事务概述
    -- desc:事务是一些列的任务组的逻辑工作单元格,这个逻辑单元中的所有任务必须作为一个整体
    -- 要么都完成要么都失败。
    -- ==============================================
    go
    -- ==============================================
    -- 2,事务的特性
    -- desc:事务是作为单个逻辑工作单元格执行的一系列工作。一个逻辑工作单元必须有以下4个属性
    -- 才能成为一个事务。
    -- a)原子性
    -- b)一致性
    -- c)隔离性
    -- d)持久性
    -- ==============================================
    go
    -- ==============================================
    -- 3,
    -- VINET下了一个订单,一共买了两件商品。因此,要在Orders(订单表)和OrderDetails(订单明细表)
    -- 里添加一条订单记录和两条订单明细记录。如果添加失败,订单无效。
    -- ==============================================
    go
    
    use Northwind
    go
    Begin Tran --开始事务【Tran也是Transaction缩写】
    Declare @orderId int
    --添加一个订单
    Insert into Orders(CustomerID,EmployeeID,OrderDate,ShipName,ShipAddress
        ,ShipCity,ShipRegion,ShipPostalCode,ShipCountry)
        values('VINET',2,GETDATE(),'Rain','AnZhenLi'
        ,'Peking','North China','100000','China')
    If @@ERROR>0
    GoTo TranRollback    --跳转到滚回标签处
    Set @orderId=@@IDENTITY
    
    --添加两个订单详细
    Insert into [Order Details](OrderID,ProductID,UnitPrice,Quantity,Discount)
        values(@orderId,51,$200,1,0)
    If @@ERROR>0
    GoTo TranRollback
    Insert into [Order Details](OrderID,ProductID,UnitPrice,Quantity,Discount)
        values(@orderId,14,$200,1,0)
    If @@ERROR>0
    GoTo TranRollback
    
    TranRollback:
    If @@ERROR>0 Or @@ROWCOUNT<>1
        Rollback Tran    --如果发生错误则滚回事务
    Else
        Commit Tran        --如果没有发生错误则提交事务
    Go
    
    select * from Orders
  • 相关阅读:
    SQLSERVER 的表分区(水平) 操作记录2
    GraphQl in ASP.NET Core
    初始认知学习 .net core 逐步加深
    C# 关于使用JavaScriptSerializer 序列化与返序列化的操作
    Nginx、IIS 相关命令
    SqlServer:查询指定表所有外键关联表信息
    centos 重启宝塔命令
    c# 根据日志中的方法信息,反射再次执行相关方法
    jackson 下载地址记录
    【设计模式】六大原则
  • 原文地址:https://www.cnblogs.com/jes_shaw/p/3067260.html
Copyright © 2011-2022 走看看