SQL事務(wù)用法begin tran,commit tran和rollback tran的用法
-- =============================================
-- Author: cynimoon
-- Create date: 2009-10-09
-- Description: 示例存儲(chǔ)過(guò)程
-- =============================================
-- EXEC TEST_PROC '文綜','包括歷史,地理,政治','政治','文綜的一門(mén)'
CREATE PROCEDURE [dbo].[TEST_PROC]
@A_Name NVARCHAR(20), -- A表姓名
@A_Remark NVARCHAR(4000), -- A表備注
@B_Name NVARCHAR(20), -- B表姓名
@B_Remark NVARCHAR(4000) -- B表備注
AS
BEGIN TRY
BEGIN TRAN
-- 在A表中插入數(shù)據(jù)
INSERT INTO [dbo].[A]
( [A_Name]
, [A_Remark] )
VALUES
( @A_Name
, @A_Remark )
-- 在B表中插入數(shù)據(jù)
INSERT INTO [dbo].[B]
( [A_ID]
, [B_Name]
, [B_Remark] )
VALUES
( @@IDENTITY -- 返回最后插入的標(biāo)識(shí)值
, @B_Name
, @B_Remark )
COMMIT TRAN
END TRY
BEGIN CATCH
ROLLBACK TRAN
INSERT INTO [dbo].[ErrorLog]
( [EL_Procedure] -- 異常存儲(chǔ)過(guò)程名稱(chēng)
, [EL_OperateTime] ) -- 報(bào)異常時(shí)間
VALUES
( 'TEST_PROC'
, CONVERT(DATETIME,GETDATE(),20) )
END CATCH
注:1. @@IDENTITY的作用是返回最后插入的標(biāo)識(shí)值。
2. 我在rollback tran中加入一個(gè)專(zhuān)門(mén)記錄異常的表,以便產(chǎn)于異常發(fā)生的時(shí)間和確定報(bào)異常的存儲(chǔ)過(guò)程的名稱(chēng)。
原文鏈接:
begin tran 可以理解成新建一個(gè)還原點(diǎn)。
commit tran提交這個(gè)自begin tran開(kāi)始的修改
rollback tran 表示還原到上個(gè)還原點(diǎn)。
相關(guān)文章
SQL 復(fù)合查詢條件(AND,OR,NOT)對(duì)NULL值的處理方法
在SQL的3值邏輯下,一個(gè)查詢條件可以產(chǎn)生以下三種情況:TRUE,FALSE,NULL。只有那些滿足WHERE子句的值是TRUE的記錄才出現(xiàn)在結(jié)果表中。2011-04-04SQL Server復(fù)制刪除發(fā)布時(shí)遇到錯(cuò)誤18752的問(wèn)題及解決方法
朋友反饋他無(wú)法刪除一臺(tái)SQL Server數(shù)據(jù)庫(kù)上的發(fā)布,具體情況為刪除一個(gè)SQL Server Replication的發(fā)布時(shí),遇到這樣的錯(cuò)誤問(wèn)題如何解決呢,下面小編給大家分享SQL Server復(fù)制刪除發(fā)布時(shí)遇到錯(cuò)誤18752的問(wèn)題及解決方法,感興趣的朋友一起看看吧2024-01-01SQL Server實(shí)現(xiàn)將特定字符串拆分并進(jìn)行插入操作的方法
這篇文章主要介紹了SQL Server實(shí)現(xiàn)將特定字符串拆分并進(jìn)行插入操作的方法,涉及SQL Server的循環(huán)、遍歷、判定及插入等相關(guān)操作技巧,需要的朋友可以參考下2016-08-08SQL server 自增ID--序號(hào)自動(dòng)增加的字段操作
這篇文章主要介紹了SQL server 自增ID--序號(hào)自動(dòng)增加的字段操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-10-10AspNetPager分頁(yè)控件 存儲(chǔ)過(guò)程
我用AspNetPager分頁(yè)控件,寫(xiě)的存儲(chǔ)過(guò)程2009-08-08SQL Server中對(duì)數(shù)據(jù)截取替換的方法詳解
本文主要介紹了SQL Server中對(duì)數(shù)據(jù)截取替換的方法。具有很好的參考價(jià)值。下面跟著小編一起來(lái)看下吧2017-03-03SQL server中字符串逗號(hào)分隔函數(shù)分享
繼SQl -Function創(chuàng)建函數(shù)數(shù)據(jù)庫(kù)輸出的結(jié)果用逗號(hào)隔開(kāi),在開(kāi)發(fā)中也有許多以參數(shù)的形式傳入帶逗號(hào)字條串參數(shù),需要的朋友可以參考下2016-10-10Sql存儲(chǔ)過(guò)程游標(biāo)循環(huán)的用法及sql如何使用cursor寫(xiě)一個(gè)簡(jiǎn)單的循環(huán)
這篇文章主要介紹了循環(huán)和游標(biāo)在Sql存儲(chǔ)過(guò)程中使用及sql如何使用cursor寫(xiě)一個(gè)簡(jiǎn)單的循環(huán)的相關(guān)資料,需要的朋友可以參考下2015-11-11SQL對(duì)數(shù)據(jù)進(jìn)行按月統(tǒng)計(jì)或?qū)?shù)據(jù)進(jìn)行按星期統(tǒng)計(jì)的實(shí)例代碼
這篇文章主要介紹了SQL對(duì)數(shù)據(jù)進(jìn)行按月統(tǒng)計(jì)或?qū)?shù)據(jù)進(jìn)行按星期統(tǒng)計(jì)的實(shí)例代碼,非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2019-08-08