Freigeben über


sp_trace_generateevent (Transact-SQL)

Erstellt ein benutzerdefiniertes Ereignis in SQL Server.

Hinweis

Diese gespeicherte Prozedur ist nicht als veraltet markiert.Alle anderen ablaufverfolgungsbezogenen gespeicherten Prozeduren sind veraltet.

Gilt für: SQL Server (SQL Server 2008 bis aktuelle Version).

Themenlink (Symbol) Transact-SQL-Syntaxkonventionen

Syntax

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

Argumente

  • [ @eventid=] event_id
    Die ID des Ereignisses, das aktiviert werden soll. event_id ist vom Datentyp int und hat keinen Standardwert. Die ID muss eine der Ereignisnummern von 82 bis 91 sein, die mit sp_trace_setevent festgelegte benutzerdefinierte Ereignisse darstellen.

  • [ @userinfo= ] 'user_info'
    Die optionale benutzerdefinierte Zeichenfolge, die den Grund des Ereignisses identifiziert. user_info ist vom Datentyp nvarchar(128). Der Standardwert ist NULL.

  • [ @userdata= ] user_data
    Die optionalen benutzerdefinierten Daten für das Ereignis. user_data ist vom Datentyp varbinary(8000). Der Standardwert ist NULL.

Rückgabecodewerte

In der folgenden Tabelle werden die Codewerte beschrieben, die die Benutzer nach Abschluss der gespeicherten Prozedur möglicherweise erhalten.

Rückgabecode

Beschreibung

0

Kein Fehler.

1

Unbekannter Fehler.

3

Das angegebene Ereignis ist ungültig. Das Ereignis ist möglicherweise nicht vorhanden oder ist nicht für die gespeicherte Prozedur geeignet.

13

Nicht genügend Arbeitsspeicher. Wird zurückgegeben, wenn nicht genügend Arbeitsspeicher zum Ausführen der angegebenen Aktion verfügbar ist.

Hinweise

sp_trace_generateevent führt viele der Aktionen aus, die zuvor von den erweiterten gespeicherten xp_trace_*-Prozeduren ausgeführt wurden. Verwenden Sie sp_trace_generateevent anstelle von xp_trace_generate_event.

Mit sp_trace_generateevent können nur die ID-Nummern von benutzerdefinierten Ereignissen verwendet werden. In SQL Server wird ein Fehler ausgelöst, wenn andere Ereignis-ID-Nummern verwendet werden.

Parameter aller gespeicherten Prozeduren der SQL-Ablaufverfolgung (sp_trace_xx) weisen eine strikte Typbindung auf. Wenn diese Parameter nicht mit den richtigen Datentypen für Eingabeparameter aufgerufen werden, wie in der Argumentbeschreibung angegeben, gibt die gespeicherte Prozedur einen Fehler zurück.

Berechtigungen

Benutzer müssen über die ALTER TRACE-Berechtigung verfügen.

Beispiele

Im folgenden Beispiel wird ein vom Benutzer konfigurierbares Ereignis in einer Beispieltabelle erstellt.

--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');

Siehe auch

Verweis

sys.fn_trace_geteventinfo (Transact-SQL)

sp_trace_setevent (Transact-SQL)

Konzepte

SQL-Ablaufverfolgung