SQL Server’da Tablodaki Sütuna Geçersiz Karakter Girilmesini Engelleyen Trigger
Herkese merhaba,
Bu yazıda SQL Server’da tablodaki sütuna geçersiz karakter girilmesini engelleyen trigger hakkında bilgi vereceğim.
SQL Server’da bazı durumlarda tabloya veri girişi yaparken triggerlarla geçersiz karakter girilmesini engelleyebiliriz.
İşlemi anlamak adına ilk önce bir tablo oluşturuyoruz.
--Ürünler Tablosunun Oluşturulması
CREATE TABLE Urunler
(
id INT PRIMARY KEY IDENTITY(1, 1),
UrunAdi NVARCHAR(200),
Miktar INT
);
Ben burada id bilgisi, ürün adı ve miktarı bilgisini tuttum. Siz tabloda dilediğiniz kadar veri tutabilirsiniz.
Sonrasında triggerımızı oluşturuyoruz.
--Trigger Oluşturma
CREATE TRIGGER Urunler_Gecersiz_Karakter_Kontrol
ON dbo.Urunler
INSTEAD OF INSERT, UPDATE
AS
BEGIN
DECLARE @Pozisyon INT = 0;
DECLARE @UrunAdi VARCHAR(100) =
(
SELECT UrunAdi FROM inserted
);
DECLARE @UrunMiktari INT =
(
SELECT Miktar FROM inserted
);
WHILE @Pozisyon < LEN(@UrunAdi)
BEGIN
IF (
ASCII(SUBSTRING(@UrunAdi, @Pozisyon + 1, @Pozisyon + 2)) > 124
AND ASCII(SUBSTRING(@UrunAdi, @Pozisyon + 1, @Pozisyon + 2)) <= 255
)
BEGIN
PRINT 'Geçersiz karakter girdiniz! Lütfen Geçerli bir karakter girin.';
RETURN;
END;
ELSE
BEGIN
SET @Pozisyon = @Pozisyon + 1;
END;
END;
INSERT INTO dbo.Urunler
VALUES
(@UrunAdi, @UrunMiktari);
END;
Trigger başarı ile oluşturulduktan sonra tablomuza veri girişi yapalım.
--Karakter hatalı veri girişi
INSERT INTO dbo.Urunler
(
UrunAdi,
Miktar
)
VALUES
(N'Kalæ', 45);
--Tablo Kontrol
SELECT *
FROM dbo.Urunler;
Tabloya veri eklemeye çalıştığınızda aşağıdaki sonucu alacaksınız. Çünkü geçersiz bir karakteri ürün adı içinde kullandık.
Şimdi tabloya doğru bir veri girişi yapalım.
--Karakter hatasız veri girişi
INSERT INTO dbo.Urunler
(
UrunAdi,
Miktar
)
VALUES
(N'Kale', 45);
--Tablo Kontrol
SELECT *
FROM dbo.Urunler;
Aşağıdaki sonucu alacaksınız.
Görüldüğü üzere veri giriş işlemi başarıyla yapılmış oldu.
Herkese çalışma hayatında ve yaşamında başarılar kolaylıklar.