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

--将原UnitCoding社区数据替改为新的UnitCoding
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 on 2008-03-13 16:26  freeliver54  阅读(716)  评论(1编辑  收藏  举报

导航