您的位置:首页 > 其它

存储过程中 事务的处理 大家有更好的方法请分享 谢谢了。

2010-05-12 15:23 351 查看
(一)BEGIN TRANSACTION
BEGIN TRY

----------------

-------------

--添加成功
COMMIT TRANSACTION
RETURN 0
END TRY
BEGIN CATCH
ROLLBACK TRANSACTION
RETURN -100
END CATCH

(二)

Declare @id int
BEGIN TRANSACTION

Insert into xxxxxTable(f1,f2)values(@a,@b)
Select @id=@@identity

Insert into abcTable(ff1,ff2,ff3)values(@c,@id,@dd)

IF @@error <> 0 --发生错误
BEGIN
ROLLBACK TRANSACTION
RETURN 0
END
ELSE
BEGIN
COMMIT TRANSACTION
RETURN 1 --执行成功
END

-

资料引用:http://www.knowsky.com/344554.html

(三)

还汤不还药

CREATE PROCEDURE testPro


AS




/**//* ------- 事务开始 ---------- */


BEGIN TRANSACTION tran_test






/**//* -------- 保存事务 ----------*/


SAVE TRANSACTION tran_test






/**//* -------- 数据操作 ---------*/


INSERT [table1] ( [content] ) VALUES ( '43332' )






/**//*---------- 提交事务 ------------*/


COMMIT TRANSACTION tran_test






/**//*--------- 判断是否有错误 ----------*/


IF ( @@ERROR <> 0 )


BEGIN




/**//*---------- 自定义错误输出 ----------*/


RAISERROR( 'Insert data error!',16,1 )




/**//*-------- 事务回滚 --------*/


ROLLBACK TRANSACTION tran_test


END






/**//*------- 判断事务数是否大于0 -----------*/


IF ( @@TRANCOUNT > 0 )


BEGIN




/**//*-------- 事务回滚 --------*/


ROLLBACK TRANSACTION tran_test


END


GO
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: