2

SQL 작업의 첫 번째 단계 인 저장 프로 시저가 있습니다. SP는 2 개의 테이블에있는 날짜를 비교합니다. SQL 작업이 계속 될 수 있으면 SQL 작업을 계속할 수 있지만 SQL 작업이 실패한 작업을 트리거하는 SP의 값을 반환해야하는 경우입니다.저장 프로 시저 SQL 작업 실패시 반환 값

가장 좋은 방법은 무엇입니까? RAISERROR 문과 함께 사용하거나 그냥 -99와 같은 값을 반환할까요?

이렇게 분명한 질문이 있지만 지금까지 생각 해보지 않았습니다.

+0

중복 가능 [SQL 작업 단계를 거부하는 방법은 무엇입니까 팅 실패] (http://stackoverflow.com/questions/2206394/how-do-i-make-a-sql-job-step-quit-reporting-failure) –

+0

일반적으로 : 사용을 시도/캐치 예외보다 오류 코드 IMHO ... – paulsm4

답변

1

원하는 방식. try/catch 및 raiserror를 사용할 수 있습니다. 따라서 원하는 경우 이벤트 로그에 오류를 기록 할 수 있습니다.

일반적으로 나는 return을 수행 한 후 나머지 코드를 진행하는 IF 문을 사용합니다.

그래도 기본 설정/요구 사항의 문제라고 생각합니다. 어느 것이 든 일을 끝낼 것이다. 제 생각에는

+0

답장을 보내 주셔서 감사합니다. 당신은 IF 계산서를 사용하여 수익을 올릴 것이라고 말할 때. SP에서 오류 또는 -999와 같은 값을 반환하는 것은 무엇입니까? – suggy1982

+0

다릅니다. RETURN을 사용하여 값을 리턴하거나 출력 매개 변수를 사용할 수 있습니다. 어느 쪽이든 작동합니다. 다시 말하지만, 나는 그것이 선호의 문제라고 생각합니다. 자신의 방법론과 일치하는 한 괜찮을 것입니다. –

0

가장 좋은 연습 방법은 다음과 같습니다

  1. 1/0 (참/거짓) 조금
  2. 저장된 프로 시저 출력 매개 변수를 반환하는 함수

    PROC 반환 값은

proc 자체의 성공 또는 실패를 테스트하는 데 사용됩니다. 일반적으로 성공 0과 오류가있을 때 다른 오류 번호