從這篇開始要總結事務了,我們就從一個簡單的事務示例開始吧。下面這個示例首先定義了一個事務,然后把關于一個新訂單的數據記錄到數據庫中。示例代碼如下:
USE TSQLFundamentals2008;GO-- 事務-- 一個簡單的事務BEGIN TRAN;-- 聲明一個變量,保存新的OrderIDDECLARE @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 N'ship to 85-b' , -- shipname - nvarchar(40) N'6789 rue de l' , -- shipaddress - nvarchar(60) N'Abbaye' , -- shipcity - nvarchar(15) N'Reims' , -- shipregion - nvarchar(15) N'10345' , -- shippostalcode - nvarchar(10) N'France' -- shipcountry - nvarchar(15) ); -- 將新的訂單ID保存到變量中SET @neworderid= SCOPE_IDENTITY(); --或者@@IDENTITY-- 返回新的訂單IDSELECT @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;
插入數據后的效果如下圖:
新聞熱點
疑難解答