데이터베이스 엔진 오류 이해

적용 대상: Microsoft Fabric의 Microsoft FabricWarehouse에 있는 SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsPlatform System(PDW) SQL 분석 엔드포인트

Microsoft SQL Server 데이터베이스 엔진 발생한 오류에는 다음 표에 설명된 특성이 있습니다.

attribute 설명
오류 번호 각 오류 메시지에는 고유한 오류 번호가 있습니다.
오류 메시지 문자열 오류 메시지에는 오류의 원인에 대한 진단 정보가 포함되어 있습니다. 많은 오류 메시지에는 오류를 생성하는 개체의 이름과 같은 정보가 삽입되는 대체 변수가 있습니다.
심각도 심각도는 오류가 얼마나 심각한지를 나타냅니다. 심각도가 낮은 오류(심각도가 1 또는 2인 경우)는 정보 메시지이거나 하위 수준 경고이며 심각도가 높은 오류는 가능한 한 빨리 해결해야 하는 문제를 나타냅니다. 심각도에 대한 자세한 내용은 데이터베이스 엔진 오류 심각도를 참조하세요.
일부 오류 메시지는 데이터베이스 엔진 코드의 여러 지점에서 발생할 수 있습니다. 예를 들어 여러 다른 조건에 대해 1105 오류가 발생할 수 있습니다. 오류를 발생시키는 각 특정 조건은 고유한 상태 코드를 할당합니다.

Microsoft 기술 자료와 같은 알려진 문제에 대한 정보가 포함된 데이터베이스를 볼 때 상태 번호를 사용하여 기록된 문제가 발생한 오류와 동일한지 확인할 수 있습니다. 예를 들어 기술 자료 문서에서 상태가 2인 1105 오류에 대해 설명하는데 실제로 발생한 1105 오류 메시지의 상태가 3인 경우 이 오류가 기술 자료 문서에 보고된 것과 다른 원인에서 비롯되었을 가능성이 높습니다.

Microsoft 지원 엔지니어는 오류의 상태 코드를 사용하여 해당 오류 코드가 발생하는 소스 코드의 위치를 찾을 수도 있습니다. 이 정보는 문제를 진단하는 방법에 대한 추가 아이디어를 제공할 수 있습니다.
프로시저 이름 오류가 발생한 저장 프로시저 또는 트리거의 이름입니다.
줄 번호 일괄 처리, 저장 프로시저, 트리거 또는 함수에서 오류를 생성한 문을 나타냅니다.

데이터베이스 엔진 인스턴스의 모든 시스템 및 사용자 정의 오류 메시지는 sys.messages 카탈로그 뷰에 포함됩니다. RAISERROR 문을 사용하여 애플리케이션에 사용자 정의 오류를 반환할 수 있습니다.

Microsoft .NET Framework SQLClient 네임스페이스, ADO(ActiveX Data Objects), OLE DB 및 ODBC(Open Database 커넥트ivity)와 같은 모든 데이터베이스 API는 기본 오류 특성을 보고합니다. 이 정보에는 오류 번호 및 메시지 문자열이 포함됩니다. 그러나 모든 API가 다른 모든 오류 특성을 보고하는 것은 아닙니다.

TRY의 TRY 블록 범위에서 발생하는 오류에 대한 정보... 연결된 CATCH 블록의 범위에서 ERROR_LINE, ERROR_MESSAGE, ERROR_NUMBER, ERROR_PROCEDURE, ERROR_SEVERITY 및 ERROR_STATE 같은 함수를 사용하여 Transact-SQL 코드에서 CATCH 구문을 가져올 수 있습니다. 자세한 내용은 TRY...CATCH(Transact-SQL)를 참조하세요.

예제

다음 예제에서는 카탈로그 뷰를 sys.messages 쿼리하여 영어 텍스트(1033)가 있는 데이터베이스 엔진 모든 시스템 및 사용자 정의 오류 메시지 목록을 반환합니다.

SELECT  
    message_id,  
    language_id,  
    severity,  
    is_event_logged,  
    text  
  FROM sys.messages  
  WHERE language_id = 1033;  

자세한 내용은 sys.messages(Transact-SQL)를 참조하세요.

참고 항목

sys.messages(Transact-SQL)
RAISERROR(Transact-SQL)
@@ERROR(Transact-SQL)
TRY...CATCH(Transact-SQL)
ERROR_LINE(Transact-SQL)
ERROR_MESSAGE(Transact-SQL)
ERROR_NUMBER(Transact-SQL)
ERROR_PROCEDURE(Transact-SQL)
ERROR_SEVERITY(Transact-SQL)
ERROR_STATE(Transact-SQL)