ALTER PROC upTransactionCase
AS
BEGIN
Set NOCOUNT ON;
Set XACT_ABORT ON;
BEGIN TRY --开始捕捉异常
BEGIN TRAN --开始事务
INSERT INTO Student VALUES('BertXie',100,'数学');
INSERT INTO Student VALUES('Tom',100,'数学');
COMMIT TRAN --提交事务
END TRY --结束捕捉异常
BEGIN CATCH --有异常被捕获
--在此可以使用xact_state()来判断是否有不可提交的事务,不可提交的事务
--表示在事务内部发生错误了。Xact_state()有三种值:-1.事务不可提交;
--1.事务可提交;0.表示没有事务,此时commit或者rollback会报错。
IF xact_state()= -1
BEGIN
ROLLBACK TRAN; --回滚事务
END
END CATCH --结束异常处理
END
- 本文标题: SQLServer 使用try,catch来进行事务回滚
- 文章分类:【SQLServer】
- 非特殊说明,本文版权归【胡同里的砖头】个人博客 所有,转载请注明出处.
- 上一篇:创建简单触发哭
- 下一篇: 存储过程OUTPUT的使用