首页 > 其他 > 详细

一个简单的事务

时间:2014-10-17 18:18:04      阅读:279      评论:0      收藏:0      [点我收藏+]

  从这篇开始要总结事务了,我们就从一个简单的事务示例开始吧。下面这个示例首先定义了一个事务,然后把关于一个新订单的数据记录到数据库中。示例代码如下:

USE TSQLFundamentals2008;
GO

-- 事务
-- 一个简单的事务
BEGIN TRAN;

-- 声明一个变量,保存新的OrderID
DECLARE @neworderid AS INT=0;

-- 将一个新订单插入到Sales.Orders表中
INSERT INTO Sales.Orders
        ( custid ,
          empid ,
          orderdate ,
          requireddate ,
          shippeddate ,
          shipperid ,
          freight ,
          shipname ,
          shipaddress ,
          shipcity ,
          shipregion ,
          shippostalcode ,
          shipcountry
        )
VALUES  ( 85 , -- custid - int
          5 , -- empid - int
          20090212 , -- orderdate - datetime
          20090301 , -- requireddate - datetime
          20090216 , -- shippeddate - datetime
          3 , -- shipperid - int
          32.38 , -- freight - money
          Nship to 85-b , -- shipname - nvarchar(40)
          N6789 rue de l , -- shipaddress - nvarchar(60)
          NAbbaye , -- shipcity - nvarchar(15)
          NReims , -- shipregion - nvarchar(15)
          N10345 , -- shippostalcode - nvarchar(10)
          NFrance  -- shipcountry - nvarchar(15)
        );
        
-- 将新的订单ID保存到变量中
SET @neworderid= SCOPE_IDENTITY(); --或者@@IDENTITY

-- 返回新的订单ID
SELECT @neworderid AS neworderid;

-- 将新订单的订单明细插入到Sales.OrderDetails表中
INSERT INTO Sales.OrderDetails( orderid ,productid ,unitprice ,qty ,discount)
VALUES ( @neworderid,11 ,14.00 ,12 ,0.000),
        (@neworderid,42,9.80,10,0.000),
        (@neworderid,72,34.80,5,0.000);

-- 提交事务
COMMIT TRAN;

插入数据后的效果如下图:

bubuko.com,布布扣

我们可以看到,成功插入了一个订单和其三笔订单明细。

测试完成后,我们需要运行以下代码清理数据。

-- 清理数据
DELETE FROM Sales.OrderDetails WHERE orderid>11077;
DELETE FROM Sales.Orders WHERE orderid>11077;
DBCC CHECKIDENT(Sales.Orders,RESEED,11077); -- 重置标识值

 

一个简单的事务

原文:http://www.cnblogs.com/mcgrady/p/4031527.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!