Freigeben über


sp_trace_generateevent (Transact-SQL)

Erstellt ein benutzerdefiniertes Ereignis.

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 ein Wert vom Datentyp int und weist keinen Standardwert auf. 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 ein Wert vom Datentyp nvarchar(128); der Standardwert ist NULL.

  • [ @userdata= ] user_data
    Die optionalen benutzerdefinierten Daten für das Ereignis. user_data ist ein Wert 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 ist eine gespeicherte Prozedur in Microsoft SQL Server 2000, die viele der Aktionen ausführt, die zuvor von den erweiterten gespeicherten Prozeduren vom Typ xp_trace_* ausgeführt wurden, die in früheren Versionen von SQL Server zur Verfügung standen. 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')