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.

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

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

SQL Server Eğitimleri Kanalına Abone Olun

Şunlar makaleler de hoşunuza gidebilir