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.

SQL Server Eğitimleri Kanalına Abone Olun

Şunlar makaleler de hoşunuza gidebilir

Ads Blocker Image Powered by Code Help Pro
Reklam Eklentisi Kullanıyorsunuz

Lütfen bizlere destek için reklam eklentisi olmadan sitemizi ziyaret edin.

Şimdiden teşekkür ederiz.