Sql Server’da Dinamik Sorgu Yaratma

Merhaba , bu yazımızda sql server’da dinamik sorgu oluşturma, hangi durumlarda dinamik sorgu kullanılmalı, stored procedurelere göre farkı nedir ? bu konulara değineceğim.

Sql’de stored procedurler işimizi fazlasıyla görmekte ancak öyle zamanlar vardır ki stored procedure göndereceğimiz parametreler yetersiz kalır , ne kadar parametre gönderilemeyeceğini kestiremezsiniz bu durumda bir dinamiklik olsun istersiniz tam bu noktada dinamik sorgular işimizi görmekte. Bir örnek vermek gerekir ise;

Create Procedure Karsilastirma ( 
@plaka_kodu int, 
) 
as
 select * from Sehirler where id = @plaka_kodu

bu şekilde gayet güzel bir şekilde kullandınız Ancak peki ya çağırmak istediğimiz kolonlar dinamik bir şekilde ise sabit değilse ;

Mesela

select UlkeAdi,IlAdi from Sehirler

buraya ilçe mahallede gelsin istiyorsunuz ancak bu her zaman geçerli değil veya zaman zaman cadde adı gelsin sokak adı gelsinde isteyebilirsiniz, Hatta zaman zaman tablo adı dahi değişsin isteriz , oda sabit kalmasın gibi istekleriniz olabilir ;

işte tam bu noktada dinamik sorgular yazmamız gerekir. Bunuda küçük bir örnek vermek gerekirse aşağıdaki gibi tanımlarız ;

declare @kolonlar varchar(255)
declare @TabloAdi varchar(255)
declare @sorgu varchar(525)

set @TabloAdi = 'dbo.Sehirler';
set @kolonlar = '[İl],[İlce],[Cadde]';
set @sorgu = 'select' + @kolonlar + 'from' + @TabloAdi;

exec (@sorgu)

şeklinde tanımlayıp isteğinize göre harmanlayıp kullanabilirisiniz.

Paylaş

Bir cevap yazın

E-posta hesabınız yayımlanmayacak.