xp_logevent(Transact-SQL)
적용 대상: SQL Server
SQL Server 로그 파일 및 Windows 이벤트 로그에 사용자 정의 메시지를 기록합니다. xp_logevent
는 클라이언트에 메시지를 보내지 않고 경고를 보내는 데 사용할 수 있습니다.
구문
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;