SQL Server EventData Fonksiyonu
Herkese merhaba,
Bu yazıda size SQL Server’da EventData Fonksiyonundan bahsedeceğim.
SQL Server’da EventData fonksiyonu ile tetikleyiciyi başlatan olayla ilgili veriler alabilirsiniz. Bu fonksiyon veritabanı olaylarıyla ilgili bilgiler döndürür ve XML veri tipinde depolanır. XML verileri isterseniz bir tabloda depolayabilirsiniz. Aşağıdaki örnekte konu ile ilgili yapılmış çalışmayı görmektesiniz.
--Database oluşturma CREATE DATABASE Esya GO --Database kullanımı USE Esya GO --Tablo oluşturma CREATE TABLE Esyalar( EsyaId INT, EsyaAd NVARCHAR(100) ) --Event Tablosu Oluşturma CREATE TABLE EventLog ( GonderilmeZamani DATETIME, LoginAdi NVARCHAR(100), EventTipi NVARCHAR(100), GonderilenKomut NVARCHAR(2000) ) GO --Trigger oluşturma (Tabloda bir değişiklik olduğu zaman) CREATE TRIGGER EsyalarTablosuDegisim ON DATABASE FOR ALTER_TABLE AS DECLARE @Veri XML SET @Veri = EventData() INSERT EventLog (GonderilmeZamani, LoginAdi, EventTipi, GonderilenKomut) VALUES (GETDATE(), CONVERT(NVARCHAR(100), CURRENT_USER), @Veri.value('(/EVENT_INSTANCE/EventType)[1]', 'nvarchar(100)'), @Veri.value('(/EVENT_INSTANCE/TSQLCommand)[1]', 'nvarchar(2000)') ) ; GO --Event tablosunu listeleme SELECT * FROM EventLog ---Tabloya yeni bir alan ekleme ALTER TABLE Esyalar ADD EsyaTipi int NOT NULL --Tablonun kontrol edilmesi SELECT * FROM dbo.Esyalar --Event tablosunun kontrol edilmesi SELECT * FROM EventLog
Görüldüğü üzere Alter Table ile yeni bir alan eklemesi yapılmış ve bu ekleme yapılınca trigger tetiklenmiş, EventLog tablosuna kayıtlar aktarılmıştır. Bu aktarımlarda temel seviye XQuery bilmekte yarar var.
Herkese çalışma hayatında ve yaşamında başarılar kolaylıklar.