2016-04-14 13 views
0

Tekrar tekrar tek bir alana başvuran uzun bir sorgum var.T-SQL Sorgu boyunca bulmak ve değiştirmek için takma ad kullanabilir miyim?

Bunu tekrar tekrar çalıştırmak istiyorum, ancak farklı alanlara karşı.

*Use #MyField = field1* 
select #MyField from mytable1 where #Myfield is not null order by #Myfield desc 
Sonra ...=field2 için

... = field1 gelen ilk satırı değiştirmek ve istediğiniz

yeniden çalıştırmak

Yapabileceğimi biliyorum: Burada

sözde kod basitleştirilmiş bir örnek Sadece & bul Do değiştirin ama tarif ettiğim şekilde bir Alias ​​yapabilir miyim?

sayesinde Rob

+1

Hayır, dinamik SQL – Quassnoi

cevap

1

Bunun için dinamik SQL kullanabilirsiniz:

DECLARE @query NVARCHAR(MAX) = 'SELECT ' + @myfield + ' FROM mytable WHERE ' + @myfield + ' IS NOT NULL ORDER BY ' + @myfield 

EXEC sp_executesql @query 

emin olun sadece aksi sorgu SQL enjeksiyon eğilimli olacak güvenilir bir değere @myfield ayarlayın.

+0

kullanmıyorsanız, hızlı yanıtlama için teşekkürler. Gerçek dünyadaki sorgu oldukça uzundur ve dinamik SQL kullanmanız elbette işe yarayacaktır, ancak sorguyu daha zor hale getirecektir. – user70576

+0

@ user70576: zor şanslar! – Quassnoi

İlgili konular