• SQL ServerSQL事务处理(Stransaction)


    ylbtech-SQL Server:SQL Server-SQL事务处理(Stransaction)

     SQL Server中的SQL事务处理(Stransaction)。

    1,SQL事务处理(Stransaction)
    -- ==============================================
    -- 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
    warn 作者:ylbtech
    出处:http://ylbtech.cnblogs.com/
    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
  • 相关阅读:
    Kafka设计解析(二):Kafka High Availability (上)
    使用Storm实现实时大数据分析
    Kafka消息的可靠性测试--针对直播业务的方案选择
    天机镜—优土大数据平台应用级别监控神器
    Kafka文件存储机制那些事
    Hbase框架原理及相关的知识点理解、Hbase访问MapReduce、Hbase访问Java API、Hbase shell及Hbase性能优化总结
    《BI那点儿事—数据的艺术》目录索引
    面试中的排序算法总结
    HBase二级索引与Join
    Hbase 学习(九) 华为二级索引(原理)
  • 原文地址:https://www.cnblogs.com/ylbtech/p/2846757.html
Copyright © 2020-2023  润新知