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.

SQL Server’da Tablodaki Sütuna Geçersiz Karakter Girilmesini Engelleyen Trigger

Ş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.

SQL Server’da Tablodaki Sütuna Geçersiz Karakter Girilmesini Engelleyen Trigger

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.

397 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!