WITH etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster
WITH etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster

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.




22 Nisan 2012 Pazar

22. WITH ROLLUP Kullanımı

  • GROUP BY ile bir toplama işlevi kullandığımızda her farklı değer için sadece sonuç satırı görüntülenir. 
  • Gruplandırdığımız değerlerin detaylarını farklı yantümceler kullanarak görüntüleyebiliriz. 
  • WITH ROLLUP ile daha detaylı sonuç listesi oluştururuz.
  • Ayrıntılı bilgi ise GROUP BY ile kullanılan CUBE ve ROLLUP komutları bize ara toplamlar vermektedir. Örneğimizde gördüğümüz gibi null,null olarak bütün  değerler ara toplam olarak verilmiş, sonra ProductName sırasında ara toplamlar verilmiştir.
Örnek: Daha detaylı sonuç listemizde GROUP BY değerlerine ekleyerek bunu gerçekleştiriyoruz. İlerleyen derslerde göreceğimiz SQL LEN() fonksiyonunu burda görmüş oluyoruz. Ürünismi(ProductName) uzunluğu 8'den küçük olması koşulunu ekliyoruz. Dikkat etmeniz gereken GROUP BY değerlerine eklemediğiniz sütünu SELECT e yazamazsınız.
Sorgu:
SELECT ProductID,ProductName,CategoryID, SUM(UnitsInStock) AS 'Miktar'
FROM Products
WHERE LEN(ProductName)<8
GROUP BY ProductID,ProductName,CategoryId 
WITH ROLLUP ORDER BY ProductID,ProductName,CategoryId 




Ders 23' e geçebilirsiniz.