다음을 통해 공유


SQL Server 오류 세부 정보

적용 대상: SQL Server Azure SQL Database Azure SQL Managed Instance Azure Synapse Analytics Analytics Platform System (PDW)

OLE DB 드라이버 다운로드

OLE DB Driver for SQL Server는 공급자별 오류 인터페이스 ISQLServerErrorInfo를 정의합니다. 이 인터페이스는 SQL Server 오류에 대한 자세한 정보를 반환하며 명령 실행 또는 행 집합 작업이 실패할 때 유용합니다.

ISQLServerErrorInfo 인터페이스에 대한 액세스를 가져오는 방법에는 두 가지가 있습니다.

소비자는 다음 코드 샘플과 같이 IErrorRecords::GetCustomerErrorObject를 호출하여 ISQLServerErrorInfo 포인터를 가져올 있습니다. (가져올 필요가 없습니다.ISQLErrorInfo.) ISQLErrorInfo와 ISQLServerErrorInfo는 모두 사용자 지정 OLE DB 오류 개체이며, ISQLServerErrorInfo는 프로시저 이름 및 줄 번호와 같은 세부 정보를 포함하여 서버 오류 정보를 가져오는 데 사용할 인터페이스입니다.

// Get the SQL Server custom error object.  
if(FAILED(hr=pIErrorRecords->GetCustomErrorObject(  
   nRec, IID_ISQLServerErrorInfo,  
   (IUnknown**)&pISQLServerErrorErrorInfo)))  

ISQLServerErrorInfo 포인터를 가져오는 또 다른 방법은 이미 가져온 ISQLErrorInfo 포인터에서 QueryInterface 메서드를 호출하는 것입니다. ISQLServerErrorInfo에는 ISQLErrorInfo에서 사용할 수 있는 정보의 상위 집합이 포함되어 있으므로 GetCustomerErrorObject를 통해 ISQLServerErrorInfo로 직접 이동하는 것이 좋습니다.

ISQLServerErrorInfo 인터페이스는 멤버 함수 ISQLServerErrorInfo::GetErrorInfo를 노출합니다. 이 함수는 SSERRORINFO 구조에 대한 포인터와 문자열 버퍼에 대한 포인터를 반환합니다. 두 포인터는 모두 소비자가 IMalloc::Free 메서드를 사용하여 할당 취소해야 하는 메모리를 참조합니다.

SSERRORINFO 구조체 멤버는 소비자가 다음과 같이 해석합니다.

멤버 설명
pwszMessage SQL Server 오류 메시지입니다. IErrorInfo::GetDescription에서 반환된 문자열과 동일합니다.
pwszServer 세션에 대한 SQL Server 인스턴스의 이름입니다.
pwszProcedure 해당되는 경우 오류가 발생한 프로시저의 이름입니다. 그렇지 않으면 빈 문자열입니다.
lNative SQL Server 네이티브 오류 번호입니다. ISQLErrorInfo::GetSQLInfoplNativeError 매개 변수에 반환된 값과 동일합니다.
bState SQL Server 오류 메시지의 상태입니다.
bClass SQL Server 오류 메시지의 심각도입니다.
wLineNumber 해당하는 경우 오류가 발생한 저장 프로시저의 줄 번호입니다.

참고 항목

Errors
RAISERROR(Transact-SQL)