SQL Server’da Yazım Kontrolü Sağlayan Fonksiyon

Herkese merhaba,

Bu yazıda SQL Server’da yazım kontrolü sağlayan fonksiyon hakkında bilgi vermeye çalışacağım.

Yazım kontrollünden demek istediğim şudur.

Siz bir sorgu yazdınız diyelim ve bunun yazımını yani syntaxını kontrol etmek istiyorsunuz. İşte bu noktada aşağıdaki fonksiyon yardımıyla bu işlemi kolaylıkla yapabilirsiniz.

Ben işlemlerimi Northwind veritabanı kullanarak yaptım. Sizler kendi veritabanınızda deneyebilirsiniz.

CREATE  FUNCTION dbo.SorguKontrolu (@p1 VARCHAR (2000))
RETURNS VARCHAR (1000)
AS
BEGIN
   DECLARE @Sonuc VARCHAR (1000)

   IF EXISTS (
         SELECT 1
         FROM sys.dm_exec_describe_first_result_set (@p1, NULL, 0)
         WHERE [error_message] IS NOT NULL
            AND [error_number] IS NOT NULL
            AND [error_severity] IS NOT NULL
            AND [error_state] IS NOT NULL
            AND [error_type] IS NOT NULL
            AND [error_type_desc] IS NOT NULL
         )
   BEGIN
      SELECT @Sonuc = [error_message] 
      FROM sys.dm_exec_describe_first_result_set(@p1, NULL, 0)
      WHERE column_ordinal = 0
   END
   ELSE
   BEGIN
      SET @Sonuc = 'Sorgu Hatasız' 
   END

   RETURN (@Sonuc)
END
GO


--Tablo Kontrolü

Select dbo.SorguKontrolu ('SELECT * FROM Customers') --Hatasız (Başarılı çalışacaktır.)
Select dbo.SorguKontrolu ('SELECT *, FROM Customers') --Hatalı (Yazım hatası verecektir.)
Select dbo.SorguKontrolu ('SELECT * FROM Customer') --Hatalı (Tabloyu bulamadı hatası verecektir.)

--Tablo Güncelleme Kontrolü

Select dbo.SorguKontrolu ('UPDATE Customers SET Region = '''' Where CustomerID =''ALFKI''') --Hatasız (Başarılı çalışacaktır.)
Select dbo.SorguKontrolu ('UPDATE Customers SET Region = '''' Where CustomerIDS =''ALFKI''') --Hatalı (Kolonu bulamadı hatası verecektir.)

--Prosedür Kontrolü

 Select dbo.SorguKontrolu ('EXEC dbo.CustOrderHist "ALFKI"') --Hatasız (Başarılı çalışacaktır.)
 Select dbo.SorguKontrolu ('EXEC dbo.CustOrderHistt "ALFKI"')  --Hatalı (Prosedürü bulamadı hatası verecektir.)

Fonksiyonu oluşturup sorgulardan herhangi birini çalıştırdığınızda aşağıdakine benzer sonuçlar alacaksınız.

SQL Server’da Yazım Kontrolü Sağlayan Fonksiyon

Görüldüğü üzere kontrol sağlanmış oldu.

Herkese çalışma hayatında ve yaşamında başarılar kolaylıklar.

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