5 Mayıs 2007 Cumartesi

SQL 2005'de Küçük Ama Etkili Bir İpUCUUU

create proc sel_encoksatanX
@Adet int
as

select top @Adet
productName,sum( Quantity) --sum toplamdır
as satısAdedi
from [Order Details]
join products
on[order details].ProductID=products.productID
group by productName
order by sum(quantity)DESC

NOT: Bu query bloğu çalışmaz..! çünkü parametreyi (@Adet) gövde metninde tanımladık. Çalışması için şöle bir formülü varrrr...!


create proc sel_encoksatanX
@Adet int
as
exec(--exec : stirn ifadeleri derlemeye çalışır
' select top ' + @Adet +
' productName,sum( Quantity)--sum toplamdır
as satısAdedi
from [Order Details]
join products
on[order details].ProductID=products.productID
group by productName
order by sum(quantity)DESC '
)

gördüğünüz gibi artık çalışır hale geldi.. EXEC sayesinde. Peki nedir? bu EXEC


EXEC Yapısının iki görevi vardır; execut un kısaltmasıdır..
1 bazı SP'leri çalıştırır.
2 İçine aldığı string ifadeleri birer nesneye dönüştürerek çalıştırırr.
Örnek:
exec('select * from customers')

Hiç yorum yok: