SQL Server’da Dinamik Sorgu Çalıştıran Prosedür

Herkese merhaba,

Bu yazıda sizlere SQL Server’da dinamik sorgu çalıştıran prosedür hakkında bilgi vereceğim.

SQL Server’da böyle bir şeye ihtiyaç olur mu bilmiyorum fakat belki ilerde ihtiyacım olur diyerekten yazmayı denedim ve yazdım. Prosedür olarak yazdım.

Üç adet parametre alıyor. Veri tabanı adı, Tablo Adı ve Şema adı.

Siz dilerseniz daha da dinamik hale getirebilirsiniz. Bu tamamen sizlerin yapacağı işe göre değişebilir.

Aşağıdaki prosedürü oluşturup kodları çalıştırın. Bende örnek olarak Northwind ve AdventureWorks veri tabanları vardı ve bu veri tabanları üzerinde denedim. Siz dilediğiniz veri tabanı üzerinde deneyebilirsiniz.

CREATE PROCEDURE DinamikDBSorguGetirme
    @VeritabaniAdi VARCHAR(50),
    @TabloAdi VARCHAR(50),
    @SchemaAdi VARCHAR(50)
AS
BEGIN
    DECLARE @SQLCumle VARCHAR(500);

    SET @SQLCumle = '
	SELECT  * 
        FROM ' + @VeritabaniAdi + '.' + @SchemaAdi + '.' + @TabloAdi + '';

    EXEC (@SQLCumle);

END;


--Kullanımı

EXEC dbo.DinamikDBSorguGetirme @VeritabaniAdi = 'Northwind',
                               @TabloAdi = 'Products',
                               @SchemaAdi = 'dbo';


EXEC dbo.DinamikDBSorguGetirme @VeritabaniAdi = 'AdventureWorks',
                               @TabloAdi = 'Department',
                               @SchemaAdi = 'HumanResources';

Prosedürü oluşturup çalıştırınca aşağıdaki sonuçları elde edeceksiniz.

SQL Server’da Dinamik Sorgu Çalıştıran Prosedür

Görüldüğü üzere iki farklı veri tabanı var ve ben aynı ekran üzerinde iki farklı veri tabanından sonuç getirdim.

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

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