SQLServer下 存储过程内 包含事务 及 返回处理是否成功

CREATE  PROCEDURE dbo.sp_ChangeUnitCoding

 (

  @OldUnitCoding varchar(20),

  @NewUnitCoding varchar(20)

 )

AS

  DECLARE @RETURNVALUE VARCHAR(1)

  BEGIN   TRAN   t1  

  --1

  UPDATE tab_A SET UnitCoding=@NewUnitCoding WHERE UnitCoding=@OldUnitCoding  

  IF @@error<>0 GOTO err_do

  --2

  UPDATE tab_B SET UnitCoding=@NewUnitCoding WHERE UnitCoding=@OldUnitCoding 

  IF @@error<>0 GOTO err_do

  --3

  UPDATE tab_C SET UnitCoding=@NewUnitCoding WHERE UnitCoding=@OldUnitCoding  

  IF @@error<>0 GOTO err_do

  COMMIT   TRAN   t1  

  SET @RETURNVALUE='1'

  GOTO ok_do

  err_do:  

  ROLLBACK  TRAN   t1 

  SET @RETURNVALUE='0'

  ok_do:

  SELECT @RETURNVALUE

  GO

posted @ 2010-12-22 16:17  Daniel_Lu  阅读(132)  评论(0编辑  收藏  举报