SQL Server ile Stored Procedure Yaratmak

EftelyA

Yaşayan Forum Efsanesi
22 Kas 2007
9,097
59
EsEs
Stored Procedure Nedir ?

Stored Procedure'ler database server'da saklanan SQL ifadeleri gibi düşünelebilir. Bir programlama dilindeki fonksiyonlar gibi parametre alabilirler. Bu parametrelere göre bir sorgu çalıştırıp cevap gönderilirebilir.
Stored Procedure'ler database server'ında saklanmasından dolayı daha hızlı çalışırlar. Bir stored procedure ilk çalıştırıldığı zaman derlenir. Bir daha çalıştırılınca derlenmeden çalışırlar. Halbuki bir program içinden SQL ifadeleri ile server'a bağlanırsanız her bağlanışsa SQL ifadesi derlenir. Bu da zaman kaybı demektir.
Sotered procedure'un diğer bir özelliği ise programlama deyimleri içermesidir. if, next, set vs.. programlama dillerindekine benzer özellikler sunar. Gelen parametrelere göre sorgu yapılıp sonucun dönmesi sağlanabilir.
Bir databse projesi gerçekleştiriyorsanız kesinlikle stored procedure kullanmalısınız. Hatta bazı progamcılar programlarının hiç bir yerinde SQL ifadesi kullanmazlar. Her zaman stored procedure'ler ile çalışırlar.
SQL Server'da Stored Procedure

SQL Server ile Stored Procedure hazırlanabilir. Bir database yaratıldığı zaman Stored Procedures klasörüde yaratılır. O klasörün üstünde sağ tıklanarak yeni bir stored procedure yaratılabilir.
Bir sql ifadesi stored procedure olarak saklanabilir. Örneğin "select * from Kisiler" bir stored procedure olarak saklanabilir. Ancak daha çok parametre alan Stored Procedure'ler kullanılır. Örneğin aşağıda basit bir stored procedure bulunmakta
CREATE PROCEDURE TEST_PRO

@yas int

AS

SELECT * FROM KISI where YAS > @yas ORDER BY YAS

Yukarıda TEST_PRO adında bir procedure yarattık. Parametre olarak bir int ID alıyor. Stored Procedure'lerde alınan paramtrelerin tipi verilmek zorundadır. Birden fazla parametre alınabilir. Parametreler arasına virgül koyulur. AS ile çalılştırılacak SQL ifadesi yazılır. SQL ifadesinde KISI tablosounda verilen yaştan daha büyük yaştaki kişileri alıyoruz. Paramtreler @ işareti ile kullanılırlar.
Programlama deyimleride kullanılabilir. Örneğin if,else kullanılabilir.
CREATE PROCEDURE TEST_PRO

@yas int

AS

if (yas > 19)
SELECT * FROM KISI where YAS > @yas ORDER BY YAS
else
SELECT * FROM KISI where YAS > @yas and ERISKIN=1 ORDER BY YAS
 
Üst

Turkhackteam.org internet sitesi 5651 sayılı kanun’un 2. maddesinin 1. fıkrasının m) bendi ile aynı kanunun 5. maddesi kapsamında "Yer Sağlayıcı" konumundadır. İçerikler ön onay olmaksızın tamamen kullanıcılar tarafından oluşturulmaktadır. Turkhackteam.org; Yer sağlayıcı olarak, kullanıcılar tarafından oluşturulan içeriği ya da hukuka aykırı paylaşımı kontrol etmekle ya da araştırmakla yükümlü değildir. Türkhackteam saldırı timleri Türk sitelerine hiçbir zararlı faaliyette bulunmaz. Türkhackteam üyelerinin yaptığı bireysel hack faaliyetlerinden Türkhackteam sorumlu değildir. Sitelerinize Türkhackteam ismi kullanılarak hack faaliyetinde bulunulursa, site-sunucu erişim loglarından bu faaliyeti gerçekleştiren ip adresini tespit edip diğer kanıtlarla birlikte savcılığa suç duyurusunda bulununuz.