-1

그래서 트랜잭션을 처리하는 등 거래 등저장 프로 시저 템플릿에 문제가 있습니까?

내가 이있는 경우 필요한 다른 저장 프로 시저를 호출 할 수있는 저장 프로 시저를 실행하는 동안 스택 트레이스의 종류를 가지고 (나는 다른 웹 사이트에 물건을 사용)이 생성 내가 제대로 내 물건을 롤백, BB에 오류가있어 CC를 호출을 수 호출하고 말하는 스택 트레이스 반환 : 찾기 위해 추적에 따라 C에서 오류를 여기서/방법/등 ...

이 논리에 문제가있는 사람이 있습니까?

SET ANSI_NULLS ON 
GO 
SET QUOTED_IDENTIFIER ON 
GO 

CREATE PROCEDURE [dbo].[NAME] 
AS 
BEGIN 
    SET NOCOUNT ON 
    SET XACT_ABORT ON 

    declare @trancount int 
    set @trancount = @@trancount 
    declare @savePointName varchar(40) 
    set @savePointName = newid() 

    BEGIN TRY 
     if @trancount = 0 
      begin transaction 
     else 
      save transaction @savePointName 

     /* 
     // STUFF HERE 
     */ 

     if @trancount = 0 
      commit transaction 
    END TRY 
    BEGIN CATCH 
     declare @xstate int 
     set @xstate = XACT_STATE() 
     if @xstate = -1 and @trancount = 0 
      rollback transaction 
     if @xstate = 1 and @trancount = 0 
      rollback transaction 
     if @xstate = 1 and @trancount > 0 
      rollback transaction @savePointName 

     declare @message varchar(max) 
      set @message = ERROR_MESSAGE() + 
         ' (' + ERROR_PROCEDURE() + 
         ':' + ltrim(str(ERROR_LINE())) + 
         ', Raised ' + ltrim(str(ERROR_NUMBER())) + 
         ', Severity ' + ltrim(str(ERROR_SEVERITY())) + 
         ', State ' + ltrim(str(ERROR_STATE())) + ')' 

     RAISERROR(@message,16,1) 
    END CATCH 
END 
+0

보고 싶은 오류가 있습니까? – JonH

+0

아니, 아무도 그것의 논리 문제를 찾을 수 있는지 알고 싶습니다, 지금까지는 괜찮아 보이지만 문제가있을 수도 어도비 livecycle에서 보이는 – Fredou

+0

왜 아래로 투표? – Fredou

답변

1

아니요,이 코드에는 문제가 없습니다.