CREATE PROCEDURE pro_TrancDemo @backvalue INT OUTPUT
AS
BEGIN
SET NOCOUNT ON;
BEGIN TRY
SET @backvalue = 1; --如果事务没有回滚就返回该值,代表事务执行成功。注意:这句也可以放到BEGIN TRAN t之后第一行,因为事务中出现回滚不会回滚对变量的赋值操作
BEGIN TRAN t --开始事务
--delete语句1
--delete语句2
--other SQL sentences …………
COMMIT TRAN t
END TRY
BEGIN CATCH
IF XACT_STATE() <> 0
BEGIN
SET @backvalue = 0; --如果事务回滚就返回0,代表事务执行失败.
ROLLBACK TRAN t;
END
END CATCH
END
GO