다음을 통해 공유


sp_trace_generateevent(Transact-SQL)

사용자 정의 이벤트를 만듭니다.

항목 링크 아이콘Transact-SQL 구문 표기 규칙

구문

sp_trace_generateevent [ @eventid = ] event_id 
     [ , [ @userinfo = ] 'user_info' ]
     [ , [ @userdata = ] user_data ]

인수

  • [ @eventid=] event_id
    설정할 이벤트의 ID입니다. event_id는 int이며 기본값은 없습니다. ID는 82에서 91 사이의 이벤트 번호 중 하나여야 하며 sp_trace_setevent로 설정한 사용자 정의 이벤트를 나타냅니다.

  • [ @userinfo= ] 'user_info'
    이벤트 발생 이유를 나타내는 선택적 사용자 정의 문자열입니다. user_info는 nvarchar(128)이며 기본값은 NULL입니다.

  • [ @userdata= ] user_data
    이벤트에 대한 선택적 사용자 지정 데이터입니다. user_data는 varbinary(8000)이며 기본값은 NULL입니다.

반환 코드 값

다음 표에서는 저장 프로시저가 완료된 후 사용자가 얻을 수 있는 코드 값을 설명합니다.

반환 코드

설명

0

오류가 없습니다.

1

알 수 없는 오류입니다.

3

지정한 이벤트가 유효하지 않습니다. 이벤트가 존재하지 않거나 저장 프로시저에 적합하지 않습니다.

13

메모리가 부족합니다. 지정한 동작을 수행할 메모리가 충분하지 않으면 반환됩니다.

주의

sp_trace_generateevent는 이전 버전의 SQL Server에서 사용 가능한 xp_trace_* 확장 저장 프로시저가 실행하던 대부분의 동작을 수행하는 MicrosoftSQL Server 2000 저장 프로시저입니다. xp_trace_generate_event 대신 sp_trace_generateevent를 사용하십시오.

사용자 정의 이벤트의 ID만 sp_trace_generateevent에서 사용할 수 있습니다. SQL Server는 다른 이벤트 ID가 사용되면 오류를 반환합니다.

모든 SQL Trace 저장 프로시저(sp_trace_xx)의 매개 변수는 유형 지정이 엄격합니다. 이러한 매개 변수가 정확한 입력 매개 변수 데이터 형식으로 호출되지 않으면 인수 설명에서 지정한 대로 저장 프로시저는 오류를 반환합니다.

사용 권한

사용자는 ALTER TRACE 권한이 있어야 합니다.

다음 예에서는 예제 테이블에 사용자 구성 이벤트를 만듭니다.

--Create a sample table.
CREATE TABLE user_config_test(col1 int, col2 char(10))

--DROP the trigger if it already exists.
IF EXISTS
   (SELECT * FROM sysobjects WHERE name = 'userconfig_trg')
   DROP TRIGGER userconfig_trg

--Create an ON INSERT trigger on the sample table.
CREATE TRIGGER userconfig_trg
   ON user_config_test FOR INSERT
AS
EXEC master..sp_trace_generateevent
   @event_class = 82, @userinfo = N'Inserted row into user_config_test'

--When an insert action happens, the user-configurable event fires. If 
you were capturing the event id=82, you will see it in the Profiler output.
INSERT INTO user_config_test VALUES(1, 'abc')