SQL Server ile ilgili her şey.

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

S

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.

SQL Server Eğitimleri Kanalına Abone Olun

Yazar Hakkında

Yavuz Selim Kart

SQL Server tarafında kendini ilerletmeye çalışırken bildiklerini sürekli başkalarına aktaran, yazılım dünyasında (C#, Java, Python vb.) kendini güncel tutmaya çalışan, araştırma yapmaktan bıkmayan, meraklı, bilginin üzerine bilgi katmaktan mutluluk duyan bir yazılım eğitmeni ve kod sever.
Grafik tasarım dünyasında Indesign'ı anlatacak kadar iyi kullanabilen, Photoshop ve Illustrator'e de orta düzey hakimiyeti bulunan, internet üzerinde online kimya dergisi kurmuş ve bunu yüzbinlerce kişiye ulaştırmayı başaran bir grafik sever.
WordPress tarafında 5 adet web sitesi kurmuş, bu sistemler üzerine çalışan bir WordPress sever.
Sosyal medya üzerinde okumalara ve araştırmalara devam eden, kendi kurmuş olduğu kimya dergisini daha çok kişiye nasıl ulaştırırım diye düşünen ve bu konuda SEO çalışmaları üzerine kafa yoran bir Sosyal Medya sever.
Kısaca çok çalışmayı seven, azimli biriyim.

Yavuz Selim Kart
SQL Server ile ilgili her şey.

Yazar

Yavuz Selim Kart

SQL Server tarafında kendini ilerletmeye çalışırken bildiklerini sürekli başkalarına aktaran, yazılım dünyasında (C#, Java, Python vb.) kendini güncel tutmaya çalışan, araştırma yapmaktan bıkmayan, meraklı, bilginin üzerine bilgi katmaktan mutluluk duyan bir yazılım eğitmeni ve kod sever.
Grafik tasarım dünyasında Indesign'ı anlatacak kadar iyi kullanabilen, Photoshop ve Illustrator'e de orta düzey hakimiyeti bulunan, internet üzerinde online kimya dergisi kurmuş ve bunu yüzbinlerce kişiye ulaştırmayı başaran bir grafik sever.
WordPress tarafında 5 adet web sitesi kurmuş, bu sistemler üzerine çalışan bir WordPress sever.
Sosyal medya üzerinde okumalara ve araştırmalara devam eden, kendi kurmuş olduğu kimya dergisini daha çok kişiye nasıl ulaştırırım diye düşünen ve bu konuda SEO çalışmaları üzerine kafa yoran bir Sosyal Medya sever.
Kısaca çok çalışmayı seven, azimli biriyim.