Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Şunlar için geçerlidir:SQL Server
Azure SQL Veritabanı
Azure SQL Yönetilen Örneği
Microsoft Fabric'te SQL veritabanı
Kullanıcı tanımlı bir olay oluşturur. Olay, SQL İzleme kullanılarak veya genişletilmiş olaylar kullanılarak toplanabilir.
Not
Bu saklı yordam kullanım dışı değildir. SQL İzleme ile ilgili diğer tüm saklı yordamlar kullanım dışıdır.
Transact-SQL söz dizimi kuralları
Sözdizimi
sp_trace_generateevent
[ @eventid = ] eventid
[ , [ @userinfo = ] N'userinfo' ]
[ , [ @userdata = ] userdata ]
[ ; ]
Bağımsız değişken
Önemli
Genişletilmiş saklı yordamlar için bağımsız değişkenler, Sözdizimi bölümünde açıklandığı gibi belirli bir sırada girilmelidir. Parametreler sıra dışı girilirse bir hata iletisi oluşur.
[ @eventid = ] eventid
Tetiklene olayın kimliği.
@eventidvarsayılan değildir. Kimlik, 82 ile 91 (dahil) arasında olmalıdır. Bu aralık, kullanıcı tanımlı olayları temsil eder. SQL İzleme'de, bu saklı yordamdan tetiklenen aynı kimliği taşıyan olayları yakalamak üzere bir izleme için bu kimlikle bir olay eklemek için sp_trace_setevent kullanın.
[ @userinfo = ] 'kullanıcı bilgisi'
İsteğe bağlı kullanıcı tanımlı dize.
@userinfo, varsayılan olarak olan NULLnvarchar(128) şeklindedir.
[ @userdata = ] kullanıcı verileri
Olay için isteğe bağlı kullanıcı tanımlı veriler.
@userdata, varsayılan olarak olan 0xvarbinary(8000) değeridir.
Dönüş kodu değerleri
Aşağıdaki tabloda, saklı yordamın tamamlanmasının ardından alabileceğiniz dönüş kodu değerleri açıklanmaktadır.
| İade kodu | Açıklama |
|---|---|
0 |
Hata yok. |
1 |
Bilinmeyen hata. |
3 |
Belirtilen olay geçerli değil. Olay mevcut olmayabilir veya saklı yordam için uygun bir olay olmayabilir. |
13 |
Bellek yetersiz. Belirtilen eylemi gerçekleştirmek için yeterli bellek olmadığında döndürülür. |
Açıklamalar
Genişletilmiş Olaylarkullanarak bu saklı yordam tarafından tetiklenen olayları yakalamak için user_info olayını bir olay oturumuna ekleyin. Daha fazla bilgi için bkz. create EVENT SESSION .
user_info olayı, @eventid parametresine geçirilen kullanıcı tanımlı olay kimliği değerleri için tetiklenir.
sp_trace_generateeventile yalnızca kullanıcı tanımlı olayların kimlik numaraları kullanılabilir. Başka bir olay kimliği numarası kullanılırsa hata oluşur.
Bu saklı yordamın parametreleri kesinlikle yazılır. Bir parametreye geçirilen değerin veri türü, açıklamasında belirtilen parametre veri türüyle eşleşmiyorsa saklı yordam bir hata döndürür.
sp_trace_generateevent, daha önce xp_trace_* genişletilmiş saklı yordamlar tarafından yürütülen eylemlerin çoğunu gerçekleştirir.
sp_trace_generateeventyerine xp_trace_generate_event kullanın.
İzinler
SQL Server'da ve Azure SQL Yönetilen Örneği'nde ALTER TRACE izni gerekir. Azure SQL Veritabanı'nda, public veritabanı rolünde üyelik gerektirir.
Örnekler
Aşağıdaki örnek, tabloya satır eklendiğinde kullanıcı tanımlı bir olayı tetikler. Olay, tabloya eklenen verileri içerir.
Bu örnek tarafından tetiklenen olayı toplamak için genişletilmiş bir olay oturumu oluşturun ve user_info olayı ekleyin ya da sql izleme .
-- 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"}]
İlgili içerik
- ETKINLIK OTURUMU OLUŞTUR (Transact-SQL)
- genişletilmiş olaylara genel bakış
- sys.fn_trace_geteventinfo (Transact-SQL)
- sp_trace_setevent (Transact-SQL)
- SQL İzleme