--概要:SqlService常用语句[事务]
--设计者:DuanXuWen
--版本:0.1
--修改者:
--修改时间:
--Begin Transaction:标记事务开始。
--Commit Transaction:事务已经成功执行,数据已经处理妥当。
--Rollback Transaction:数据处理过程中出错,回滚到没有处理之前的数据状态,或回滚到事务内部的保存点。
--Save Transaction:事务内部设置的保存点,就是事务可以不全部回滚,只回滚到这里,保证事务内部不出错的前提下。
CREATE TABLE #table1
(
Id INT IDENTITY(1,1), --主键自增
Name VARCHAR(20),--名字
Age INT --年龄
)
--①事务---------------------------------------------
--开启事务
BEGIN TRAN
--错误机制
BEGIN TRY
INSERT INTO #table1 VALUES(\'哈哈\',16)
INSERT INTO #table1 VALUES(\'嘻嘻\',\'出错\')
INSERT INTO #table1 VALUES(\'呵呵\',18)
END TRY
BEGIN CATCH
SELECT
Error_number() AS ErrorNumber, --错误代码
Error_severity() AS ErrorSeverity, --错误严重级别,级别小于10 try catch 捕获不到
Error_state() AS ErrorState , --错误状态码
Error_Procedure() AS ErrorProcedure , --出现错误的存储过程或触发器的名称。
Error_line() AS ErrorLine, --发生错误的行号
Error_message() AS ErrorMessage --错误的具体信息
IF(@@trancount>0) --全局变量@@trancount,事务开启此值+1,他用来判断是有开启事务
BEGIN
ROLLBACK TRAN ---由于出错,这里回滚到开始,第一条语句也没有插入成功。
END
END CATCH
IF(@@trancount>0)
BEGIN
COMMIT TRAN --如果成功#table1表中,将会有3条数据。
END
SELECT * FROM #table1
--②事务[保存点]---------------------------------------------
--开启事务
BEGIN TRAN
--错误机制
BEGIN TRY
INSERT INTO #table1 VALUES(\'哈哈\',16)
--保存点
SAVE TRAN onesucceeds
INSERT INTO #table1 VALUES(\'嘻嘻\',17)
INSERT INTO #table1 VALUES(\'呵呵\',18)
END TRY
BEGIN CATCH
SELECT
Error_number() AS ErrorNumber, --错误代码
Error_severity() AS ErrorSeverity, --错误严重级别,级别小于10 try catch 捕获不到
Error_state() AS ErrorState , --错误状态码
Error_Procedure() AS ErrorProcedure , --出现错误的存储过程或触发器的名称。
Error_line() AS ErrorLine, --发生错误的行号
Error_message() AS ErrorMessage --错误的具体信息
IF(@@trancount>0) --全局变量@@trancount,事务开启此值+1,他用来判断是有开启事务
BEGIN
ROLLBACK TRAN ---由于出错,这里回滚到开始,第一条语句也没有插入成功。
END
END CATCH
IF(@@trancount>0)
BEGIN
ROLLBACK TRAN onesucceeds--#table1表中,将会有1条数据。
END
SELECT * FROM #table1
继续阅读与本文标签相同的文章
最优二叉树(哈夫曼编码)
农业贷款预测的回归算法实现_1257
-
阿里云InfluxDB技术内幕
2026-05-18栏目: 教程
-
RocketMQ 主从同步若干问题答疑
2026-05-18栏目: 教程
-
RocketMQ ACL使用指南
2026-05-18栏目: 教程
-
从事iOS开发4年,我干倒三家公司,4年开发笔记(总结)送给正在迷茫的你!
2026-05-18栏目: 教程
-
【面小易-面经12】阿里巴巴Java方向面试题汇总(含答案)
2026-05-18栏目: 教程
