12 Ağustos 2012 Pazar

SQL Server'da Stored Procedure

  • SQL ifadeleri SQL Serverda Stored Procedure olarak saklanmaktadır. 
  • Basit örneklemek gerekirse " SELECT * FROM Birds " ifadesini saklayabiliriz. Ama büyük yapılarda kullanılan Stored Procedureler daha komplekstir. 
  • Stored Procedure'ler birden fazla tablonun farklı JOIN işlemleri ile bağlanmasıyla ve parametreli veya parametresiz değerlerin WHERE koşullarıyla kısıtlanmasıyla istenilen sonuça hızlı ve sade bir şekilde ulaşmamızı sağlar.

ÖRNEK:
CREATE PROCEDURE Person_Selection
@yas INT

AS

IF(Yas> 19)
SELECT * FROM Person WHERE Yas > @yas ORDER BY Yas
ELSE
SELECT * FROM Person WHERE Yas> @yas and Eriskin=1 ORDER BY Yas

GO

11 Ağustos 2012 Cumartesi

Stored Procedure Tipleri ve Genel Yapısı

     1-) Stored Procedure Tipleri

  • Extended Stored Procedure :  Genellikle *.dll şeklinde derlenmiş prosedürlerdir.
  • CLR Stored Procedure : SQL Server 2005’den itibaren CLR ortamındaki herhangi bir dili kullanarak kodladığımız stored procedure’lerdir.
  • Sistem Stored Procedure : Genellikle sp_ ön eki ile başlarlar ve hepsi master veri tabanında tutulan stored procedure'ler.
  • Kullanıcı Tanımlı Stored Procedure : Programcının yani bizim programladığımız stored procedure'lerdir.

     2-) Stored Procedure'lerin Genel Yapısı

CREATE  PROCEDURE or CREATE PROC  prosedür_adı
[ WITH Seçenekleri ]
AS
               SQL ifadeleri
GO




Açıklama:  Yukarıda gördüğümüz gibi Create Proc veya Create Procedure deyimi ile başlıyoruz ve prosedürümüzün ismini yazıyoruz. WITH seçeneği ile Stored procedure de bulunan kaynak kodlarını gizlemek için kullanıyoruz. WITH kullanımı zorunlu değildir.Create Procedure ile AS deyimleri arasına parametreli stored prosedürler için değişken tanımlaması yapılır. Örnek olarak ' @ogrencino int ' gibi...  Parametresiz prosedürler için herhangi bir tanımlama yapılmaz, AS yazılarak devam edilir. AS’den sonra prosedürün içine yazacağımız SQL ifadelerini yazarız ve GO deyimini de ekleyerek prosedürümüzü tamamlamış oluruz.

Not: GO deyimi zorunlu değildir ama programı ciddi hatalardan kurtarmaktadır.

Daha sonra Procedure 1 kere çalıştırmanız (F5) yapmanız yeterlidir. Stored Procedure'ümüzü tekrar çağırmak istediğimizde aşağıdaki komutu çalıştırmamız yeterlidir.

         EXEC prosedür_adı  


Stored Procedure'ler SQL Serverda aşağıdaki konumda bulunmaktadır.