USE 教学管理
GO
DECLARE@del_errorint,@ins_errorint-- 开始一个事务BEGINTRAN-- 删除一个学生DELETE 学生表 WHERE 学号 ='S060308'-- 为删除语句设置一个接受错误数值的变量SELECT@del_error= @@ERROR--再执行插入语句INSERTINTO 学生表
VALUES('S060308','******19890526***','张丹宁','男','130***12','宁波','电子商务','信息学院',162)--为插入语句设置一个接受错误数值的变量SELECT@ins_error= @@ERROR--测试错误变量中的值IF@del_error=0AND@ins_error=0BEGIN--成功,提交事务COMMITTRANENDELSEBEGIN-- 有错误发生,回滚事务 IF@del_error<>0PRINT'错误发生在删除语句'IF@ins_error<>0PRINT'错误发生在插入语句'ROLLBACKTRANEND
GO
使用 TRY...CATCH
BEGIN TRY
BEGINTRANSACTION
……
COMMITTRANSACTIONEND TRY
BEGIN CATCH
ROLLBACKTRANSACTIONEND CATCH