18 Eylül 2016 Pazar

SQL: Dinamik Sorgu Oluşturmak

Gelen bir soru üzerine olayın mantığının anlaşılabilmesi için hızlıca bir örnek hazırladım.

Örnekte iki tabloyu join etmek için bir stored procedure kullanılıyor. Parametre olarak iki tablonun adları ve join edilecek kolon adları veriliyor.

-- SQL Dinamik Sorgu
create proc BizimProcedure @tablo1Adi varchar(64),@tablo2Adi varchar(64),@ilkTablodakiKolon varchar(64),@ikinciTablodakiKolon varchar(64)
as
DECLARE @sorgu varchar(max) = ''
set @sorgu = 'select * from ' + @tablo1Adi + ' t1 join ' + @tablo2Adi + ' t2 on t1.' + @ilkTablodakiKolon + ' = t2.' + @ikinciTablodakiKolon
exec (@sorgu)
BizimProcedure 'Analiz20160914','Analiz20160917','MatchDate','MatchDate'
-- http://ercanbozkurt.blogspot.com

Hiç yorum yok: