다음을 통해 공유


xp_logevent(Transact-SQL)

적용 대상: SQL Server

SQL Server 로그 파일 및 Windows 이벤트 로그에 사용자 정의 메시지를 기록합니다. xp_logevent 는 클라이언트에 메시지를 보내지 않고 경고를 보내는 데 사용할 수 있습니다.

Transact-SQL 구문 표기 규칙

구문

xp_logevent { error_number , 'message' } [ , 'severity' ]

인수

error_number

.보다 큰 50000사용자 정의 오류 번호입니다. 최대값은 (2^31 - 1)입니다 2147483647 .

'message'

최대 2048자의 문자열입니다.

'심각도'

세 문자 문자열 중 하나: INFORMATIONAL, WARNING또는 ERROR. 심각도 는 선택 사항이며 기본값은 .입니다 INFORMATIONAL.

반환 코드 값

0 (성공) 또는 1 (실패).

결과 집합

xp_logevent 는 포함된 코드 예제에 대해 다음 오류 메시지를 반환합니다.

The command(s) completed successfully.

설명

Transact-SQL 프로시저, 트리거, 일괄 처리 등에서 메시지를 보낼 때 대신 문을 xp_logevent사용합니다RAISERROR. xp_logevent 는 클라이언트의 메시지 처리기를 호출하거나 설정 @@ERROR하지 않습니다. Windows 이벤트 로그 및 SQL Server 인스턴스 내의 SQL Server 오류 로그 파일에 메시지를 쓰려면 문을 실행합니다 RAISERROR .

사용 권한

데이터베이스에서 db_owner 고정 데이터베이스 역할의 master 멤버 자격 또는 sysadmin 고정 서버 역할의 멤버 자격이 필요합니다.

예제

다음 예제에서는 Windows 이벤트 뷰어 메시지에 전달된 변수를 사용하여 메시지를 기록합니다.

DECLARE @@TABNAME VARCHAR(30),
    @@USERNAME VARCHAR(30),
    @@MESSAGE VARCHAR(255);

SET @@TABNAME = 'customers';
SET @@USERNAME = USER_NAME();

SELECT @@MESSAGE = 'The table ' + @@TABNAME + ' is not owned by the user
   ' + @@USERNAME + '.';

USE master;

EXEC xp_logevent 60000, @@MESSAGE, informational;