SQL 스크립트를 작업 중이며 일부 조건이 충족되지 않으면 스크립트를 계속 중지해야합니다. 내가 그것을 구글 할 때, 나는 심각도가 20 인 RaisError가 그것을 끝내는 것을 알았습니다. 그러나 어떤 이유로 나는 그 옵션을 사용할 수 없습니다. SQL 스크립트 실행을 중지하는 가능한 대안이 무엇인지 알려주십시오.
다른 언어에서 발견되는 것과 같은 기능적으로 유사한 ASSERT 루틴을 사용하고 싶습니다. 즉 구문 (절차, 구문 등) ASSERT( <condition>, <msg>) 때 이러한 <condition>첫번째 인수 전달 예외 지정된으로 상승 거짓 <msg>설명 메시지. 나는 이것이 손으로하는 것이 쉽지 않다는 것을 알고 있지만 DBMS와 함께 제공 되는 표준이 있는지 묻고 있습니다. 직접 작성하거나 타사 …
PostgreSQL에서 예외가 발생하면 다음과 같은 "CONTEXT"줄이 있습니다. ERROR: INSERT has more target COLUMNS than expressions LINE 3: ... ^ QUERY: INSERT INTO ... CONTEXT: PL/pgSQL FUNCTION "XXXXX" line 4 at SQL statement 그러나 예외를 던질 때이 줄은 없습니다. 그것을 추가하는 방법을 찾지 못했습니다. RAISE EXCEPTION 'blablabla' USING HINT = 'blablablabla'; …
ERROR_STATE()동일한 유형의 오류가 발생할 수있는 소스 코드의 다른 상태 / 위치를 구별하는 데 도움 이 될 수 있다고 읽었습니다 . 그러나 그것이 어떻게 유용 할 수 있는지는 분명하지 않습니다. MSDN 상태 : ERROR_STATE() TRY… CATCH 구문의 CATCH 블록을 실행시킨 오류의 상태 번호를 반환합니다. 실제로 어떻게 사용할 수 있습니까? 어떤 사람이 …
Postgres에서는 다음 코드를 사용하여 예외의 "스택 추적"을 얻습니다. EXCEPTION WHEN others THEN GET STACKED DIAGNOSTICS v_error_stack = PG_EXCEPTION_CONTEXT; 이것은 "자연스러운"예외에 대해서는 잘 작동하지만 다음을 사용하여 예외를 제기하면 RAISE EXCEPTION 'This is an error!'; ... 스택 추적이 없습니다. 메일 링리스트 entry 에 따르면 , 이것은 내 의도를 알 수는 없지만 의도적 …
try catch 및 dynamic sql을 사용하는 저장 프로 시저 내에서 백업 명령을 실행할 때 백업 명령을 직접 실행하는 것과 비교할 때 오류 메시지가 매우 일반적입니다. SP 내에서 시도 / 잡기 : begin try execute sp_executesql @sql; -- a backup command end try begin catch print ERROR_MESSAGE(); -- save to log, …
SQL Server에서 XACT_ABORT가 해제되어 있으면 일부 오류가 현재 명령문을 종료하고 (예 : 일부 매개 변수를 사용하는 저장 프로 시저에 잘못된 수의 매개 변수를 제공) 일부 오류는 전체 배치를 중단합니다 (예 : 저장된 매개 변수를 제공하는 매개 변수) 매개 변수를 사용하지 않는 절차). [참조] : http://www.sommarskog.se/error-handling-I.html#scope-abortion . 내가 알고 싶은 것은 …