日期:2014-05-19  浏览次数:20831 次

存储过程中是否能实现像事务那样的回滚功能
各位好,小弟现在有个问题想请问大家一下,就是在我的存储过程中有多条SQL语句,我想实现像事务那样的功能,当第二条SQL语句执行失败时就回滚,这样第一条SQL语句也就没有执行了,请问该怎么实现啊

------解决方案--------------------
参考下:
CREATE PROCEDURE PRO_NAME
....
AS
BEGIN TRANSACTION

--操作

IF(@@ERROR <> 0)
BEGIN
GOTO ERROR_LABEL
END

--操作

IF(@@ERROR <> 0)
BEGIN
GOTO ERROR_LABEL
END
--操作

IF(@@ERROR <> 0)
BEGIN
GOTO ERROR_LABEL
END

COMMIT TRANSACTION

RETURN

ERROR_LABEL:
BEGIN
ROLLBACK TRANSACTION
END
GO