sp_trace_generateevent (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 は Microsoft SQL Server 2000 のストアド プロシージャです。以前のバージョンの SQL Server で、拡張ストアド プロシージャ xp_trace_* を使って実行していた操作の多くは、このストアド プロシージャで実行できます。xp_trace_generate_event の代わりに sp_trace_generateevent を使用してください。
sp_trace_generateevent には、ユーザー定義イベントの ID 番号のみを使用できます。他のイベント 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')