SQL Server’da EVENTDATA Fonksiyonu

SQL Server'da EVENTDATA Fonksiyonu
SQL Server'da EVENTDATA Fonksiyonu

Herkese merhaba. Bu yazıda size SQL Server’da EVENTDATA fonksiyonunun kullanımından 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.

530 Kez Okundu

Yavuz Selim Kart

Yazılım ve veri tabanında bildiklerimi anlatmaya gayret ediyorum. Halen birçok programlama dili üzerinde araştırmalar yaparak kendimi geliştiriyorum. Bunlar haricinde Grafik Tasarım ve Wordpress konularına da ilgim bulunmakta. SEO ve Sosyal medya yönetimleri hakkında da bilgim mevcuttur. Kısaca çok çalışmayı seven azimli biriyim.

You may also like...

Yazı kopyalamak yasaktır!