2017-09-02 4 views
0
begin try 

    DECLARE @Message VARCHAR(200) 
    DECLARE @MaxUserCode INT 

    BEGIN TRANSACTION ADM_UPD_SalesUserDetails 

      IF 1=0 
      BEGIN  
       SET @Message = 'fail' 
       RAISERROR(@Message,16,1) 
      END 

    insert into test values(1,'pass') 
    commit TRANSACTION ADM_UPD_SalesUserDetails 

end try 

begin catch 

    IF @@TRANCOUNT > 0 
     ROLLBACK TRANSACTION ADM_UPD_SalesUserDetails 

    if @Message='fail' 
    select 'insert' 
    else 
    select 'ok' 

end catch 

答えて

0

上記のクエリでIF条件はfalse(1 = 0)を返し、値をTESTテーブルに挿入します。 catchブロック内のスクリプトは実行されません。

注:CATCHステートメントは、TRYブロック内のステートメントにエラーが発生した場合にのみ実行されます。

+0

ありがとうございます –

関連する問題