SQL Server’da UPDATE Fonksiyonu
Herkese merhaba. Bu yazıda size SQL Server’da UPDATE fonksiyonunun kullanımından bahsedeceğim.
SQL Server’da UPDATE fonksiyonu belirtilen bir sütunun INSERT veya UPDATE yapılıp yapılmadığını gösteren bir Boolean değer döndürür. UPDATE fonksiyonu, trigger’ın belirli eylemleri yürütüp yürütmeyeceğini test etmek için bir Insert veya UPDATE trigger’ın gövdesindeki herhangi bir yerde kullanılır. Örnek kullanımı aşağıda görmektesiniz.
--Database oluşturma
CREATE DATABASE Ornekler
GO
USE Ornekler
--Tablo oluşturma
CREATE TABLE CalisanTablo (
CalisanId INT
,CalisanAd NVARCHAR(100)
)
GO
--Tabloya veri ekleme
INSERT INTO dbo.CalisanTablo (CalisanId, CalisanAd)
VALUES (1, -- CalisanId - int
N'Yavuz Selim Kart' -- CalisanAd - nvarchar(100)
)
--Tablo içindeki verileri kontrol etme
SELECT
*
FROM dbo.CalisanTablo
--Trigger var mı yok mu kontrol etme
USE Ornekler;
GO
IF EXISTS (SELECT
name
FROM sys.objects
WHERE name = 'TriggerOrnegi'
AND type = 'TR')
DROP TRIGGER TriggerOrnegi;
GO
--Trigger oluşturma (Update)
CREATE TRIGGER TriggerOrnegi
ON CalisanTablo
INSTEAD OF UPDATE
AS
IF (UPDATE(CalisanId)
OR UPDATE(CalisanAd))
BEGIN
RAISERROR (50009, 16, 10)
END;
GO
--Update işlemi yapma
UPDATE CalisanTablo
SET CalisanAd = 'Pelin'
WHERE CalisanId = 1;
GO
--Tabloyu listeleme
SELECT
*
FROM dbo.CalisanTablo
--Trigger oluşturma (Insert)
CREATE TRIGGER TriggerOrnegi2
ON CalisanTablo
INSTEAD OF INSERT
AS
IF (UPDATE(CalisanId)
OR UPDATE(CalisanAd))
BEGIN
RAISERROR (50010, 16, 10)
END;
GO
--Veri ekleme işlemi yapma
INSERT INTO dbo.CalisanTablo (CalisanId, CalisanAd)
VALUES (2, -- CalisanId - int
N'Pelin' -- CalisanAd - nvarchar(100)
)
--Tabloyu listeleme
SELECT
*
FROM dbo.CalisanTablo
Yukarıdaki sorguda CalisanId ya da CalisanAd tablosu insert ya da update edildiğinde hata veren iki adet trigger bulunmaktadır. Insert ya da Update işlemi yapılınca bize hata verecektir. Dikkat edilirse hata işlemi verilmesi bir koşula bağlanmıştır. Update fonksiyonu ile CalisanId ve CalisanAd alanları kontrol edilmiştir. Bu koşula girip bize hata döndürmüştür.
Herkese çalışma hayatında ve yaşamında başarılar kolaylıklar.