나는 try catch 블록을 사용하여 저장 프로 시저를 작성합니다.수동으로 예외를 포착 할 때 시스템 예외가 발생할 수 있습니까?
이제 테이블에 고유 한 열이 있습니다. 내가 중복 값을 삽입하려고 할 때 그것을 제외하고 예외를 throw I는이
처럼 할 수 원하는 어떤 2627.
없는 경우 ((* COL1 = '값')가 true = tblABC에서를 선택 존재) raiseError (2627) - 난 중복 값을 삽입하는 삽입 쿼리를 사용했을 경우 발생했을 시스템 오류가 발생
편집 : 나는 때문에 예외를 처리 증가로 이어지는에 롤백을 얻는다 트랜잭션을 사용하고
ex를 얻은 @@ Identity 값 이전 쿼리에서 사용됨 b4 예외가 발생했습니다.
실제로 삽입되는 b4가 발생할 수있는 예외를 모두 확인하고 싶습니다. 이렇게하려면 if else
과 select 문을 사용하여 수동으로 오류를 발생시킬 수있는 예외를 검사 할 것입니다. 여기에 고유 한 키 위반을 잡을 수 있지만 예외가 의도적으로 여기에 던져 질 것입니다 그래서 예외가 발생하지 않습니다. 그래서 예외는 시스템 예외 예 265
이어야합니다. 그리고 어떤 방법이 더 좋을 것입니다, 쿼리를 삽입하거나 검색어를 사용하여 삽입하기 전에 값을 삽입하여 을 사용하고 계십니까?
IT는 SQL 당신은 시스템 오류를 발생시킬 수 없습니다
@Remus Plz 내 편집 답변. 내 Ques에 대한 설명적인 정보를 얻지 못해서 소리 질러 –
편집 후 내 게시물을 업데이트 할 필요가 없습니다. 모든 것이 중요합니다. –
T-SQL의 TRY/CATCH에는 다시 처리 의미가 없습니다. 사용자 정의 유형 (즉, 50000 이상의 오류 코드) * 예외를 던져야합니다. 지저분하지만, T-SQL 예외 처리의 최첨단 기술입니다. –