Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
A következőkre vonatkozik:SQL Server
Azure SQL Database
Felügyelt Azure SQL-példány
SQL-adatbázis a Microsoft Fabricben
Felhasználó által definiált eseményt hoz létre. Az esemény összegyűjthető SQL Trace vagy Bővített eseményekhasználatával.
Jegyzet
Ez a tárolt eljárás nem elavult. Minden más SQL Trace-hez kapcsolódó tárolt eljárás elavult.
Transact-SQL szintaxis konvenciói
Szintaxis
sp_trace_generateevent
[ @eventid = ] eventid
[ , [ @userinfo = ] N'userinfo' ]
[ , [ @userdata = ] userdata ]
[ ; ]
Érvek
Fontos
A kiterjesztett tárolt eljárások argumentumait a Szintaxis szakaszban leírt sorrendben kell megadni. Ha a paraméterek sorrenden kívül vannak beírva, hibaüzenet jelenik meg.
[ @eventid = ] eventid
A aktiválni kívánt esemény azonosítója.
@eventidint, alapértelmezés nélkül. Az azonosítónak a 82 és 91 közötti tartományban kell lennie. Ez a tartomány a felhasználó által meghatározott eseményeket jelöli. Az SQL Trace-ben az sp_trace_setevent használatával adjon hozzá egy ilyen azonosítóval rendelkező eseményt egy nyomkövetéshez, hogy rögzítse azokat az eseményeket, amelyeket ugyanazzal az azonosítóval aktivált a tárolt eljárás.
[ @userinfo = ] 'userinfo'
A felhasználó által megadott opcionális sztring.
@userinfonvarchar(128), alapértelmezett értéke NULL.
[ @userdata = ] Userdata
Az esemény felhasználó által nem kötelezően megadott adatai.
@userdatavarbinary(8000), alapértelmezett értéke 0x.
Kódértékek visszaadása
Az alábbi táblázat a tárolt eljárás befejezését követően lekérhető visszatérési kódértékeket ismerteti.
| Kód visszaadása | Leírás |
|---|---|
0 |
Nincs hiba. |
1 |
Ismeretlen hiba. |
3 |
A megadott esemény érvénytelen. Előfordulhat, hogy az esemény nem létezik, vagy nem megfelelő a tárolt eljáráshoz. |
13 |
Nincs memóriája. Akkor adja vissza, ha nincs elegendő memória a megadott művelet végrehajtásához. |
Megjegyzések
A tárolt eljárás által aktivált események Bővített eseményekhasználatával történő rögzítéséhez adja hozzá a user_info eseményt egy esemény munkamenethez. További információ: CREATE EVENT SESSION. A user_info esemény a @eventid paraméternek átadott felhasználó által megadott eseményazonosító-érték esetén aktiválódik.
Csak a felhasználó által megadott események azonosítószáma használható sp_trace_generateevent. Hibaüzenet jelenik meg, ha bármilyen más eseményazonosítót használ.
A tárolt eljárás paraméterei szigorúan be vannak állítva. Ha a paraméternek átadott érték adattípusa nem egyezik meg a leírásban megadott paraméter-adattípussal, a tárolt eljárás hibát ad vissza.
sp_trace_generateevent végrehajtja a xp_trace_* kiterjesztett tárolt eljárások által korábban végrehajtott műveletek nagy részét.
sp_trace_generateeventhelyett használja xp_trace_generate_event.
Engedélyek
Az SQL Serverben és a felügyelt Azure SQL-példányban ALTER TRACE engedélyre van szükség. Az Azure SQL Database-ben tagságra van szükség a public adatbázis-szerepkörben.
Példák
Az alábbi példa egy felhasználó által definiált eseményt aktivál, amikor egy sor be van szúrva egy táblába. Az esemény a táblába beszúrt adatokat tartalmazza.
A példában aktivált esemény gyűjtéséhez hozzon létre egy kiterjesztett esemény munkamenetet, és vegye fel a user_info eseményt, vagy hozzon létre egy SQL-nyomkövetési, és vegye fel a UserConfigurable:0 eseményt.
-- Create a table
DROP TABLE IF EXISTS dbo.user_defined_event_example;
CREATE TABLE dbo.user_defined_event_example
(
Id INT IDENTITY (1, 1) PRIMARY KEY,
Data NVARCHAR (60) NOT NULL
);
DROP TRIGGER IF EXISTS fire_user_defined_event;
GO
-- Create an insert trigger on the table
CREATE TRIGGER fire_user_defined_event
ON dbo.user_defined_event_example
FOR INSERT
AS DECLARE @EventData AS VARBINARY (8000);
-- Convert inserted rows to JSON and cast it as a binary value
SELECT @EventData = CAST ((SELECT Id,
Data
FROM inserted
FOR JSON AUTO) AS VARBINARY (8000));
-- Fire the event with the payload carrying inserted rows as JSON
EXECUTE dbo.sp_trace_generateevent
@eventid = 82,
@userinfo = N'Inserted rows into dbo.user_defined_event_example',
@userdata = @EventData;
GO
-- Insert a row into the table. The trigger fires the event.
INSERT INTO dbo.user_defined_event_example (Data)
VALUES (N'Example data');
-- Copy the binary payload from the event and cast it to a string with the JSON value
SELECT CAST (0x5B007B0022004900640022003A0031002C002200440061007400610022003A0022004500780061006D0070006C0065002000640061007400610022007D005D00 AS NVARCHAR (MAX));
-- This returns: [{"Id":1,"Data":"Example data"}]