存储过程中 事务的处理 大家有更好的方法请分享 谢谢了。
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
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
相关文章推荐
- (转) SQL Server在存储过程中编写事务处理代码的三种方法
- SQL Server在存储过程中编写事务处理代码的三种方法
- SQL Server在存储过程中编写事务处理代码的三种方法
- SQL Server在存储过程中编写事务处理代码的三种方法
- SQL Server存储过程中编写事务处理的方法小结
- 给大家分享下隐藏整个界面软键盘的方法,如果大家有更好的方法也建议下,谢谢了
- 一个存储过程的 事务模板 跟大家分享
- SQL Server在存储过程中编写事务处理代码的三种方法
- SQL Server:存储过程中编写事务处理的方法小结
- SQL Server在存储过程中编写事务处理代码的三种方法
- SQL Server在存储过程中编写事务处理代码的方法
- .net 事务嵌套存储过程事务的处理方法
- SQL Server在存储过程中编写事务处理代码的三种方法
- SQL Server在存储过程中编写事务处理代码的三种方法
- SQL Server存储过程中编写事务处理的方法小结
- SQL Server存储过程中编写事务处理的方法小结
- 浅析SQL存储过程和事务处理
- Spring aop事务代理对象通过TransactionInterceptor处理目标方法事务过程,cglib方式
- 存储过程中简单事务书写方法
- 在存储过程中编写正确的事务处理代码