

MSSQL'de Stored Procedure Kullanarak Select (Seçme) İşlemi Yapmak
-
Stored Procedure (Saklı Yordam) kullanarak veritabanı üzerinde select (seçme) işlemini gerçekleştirelim.
Projelerinizin veritabanı tarafında projeyi hızlı ve güvenli bir şekilde kullanmayı istiyorsa bu önlemlerden birisi de prosedür kullanmak olacaktır. Bu makalemizde veritabanı üzerine yapılan işlemlerde (select, update, delete, insert) "select" sorgusunu örneklerle sizlere aktarmaya çalışacağız.
Makaleler adlı tablomuzu oluşturalım.Makaleler Tablosu
CREATE TABLE [tblMakaleler] ( [makale_ID] INT PRIMARY KEY NOT NULL IDENTITY(1,1), [baslik] NVARCHAR(255), [ozet] NVARCHAR(1000), [icerik] NVARCHAR(MAX), [eklenme_tarihi] DATETIME NULL DEFAULT (getdate()), [yayin_durumu] TINYINT DEFAULT ((0)) )
Tablomuzun oluştuğuna dair görseli paylaşalım.
Tablo üzerinde deneyler gerçekleştirmek için içerisine veriler ekliyoruz.

Ne kadar makale varsa hepsini listelemek istediğimizi düşünelim. Burada yaptığımız klasik "Select" sorgusunu prosedür içerisinde belirterek koşullarımıza uygun verileri her daim çağırmaya hazır bekletiyoruz.
CREATE Proc [SP_Makaleler_Tumu] AS BEGIN SELECT baslik, ozet FROM tblMakaleler END
Prosedürümüz veritabanında oluşmuştur. Daha sonra bunu çağırarak verilerimizi listeleyelim.

Prosedürü Çalıştıralım
EXEC SP_Makaleler_Tumu
Sonuç

---------------------------------------------------------------------------------------
Yayın durumu 1 olan makaleleri listeleyelim (Onaylı makaleler).
CREATE Proc [SP_Makaleler_Onayli] AS BEGIN SELECT baslik, ozet FROM tblMakaleler WHERE yayin_durumu = 1 END
Prosedür Oluştu

Prosedürü Çalıştıralım
EXEC SP_Makaleler_Onayli
Sonuç

-----------------------------------------------------------
Yayın durumu 0 olan makaleleri listeleyelim (Onaysız makaleler).
CREATE Proc [SP_Makaleler_Onaysiz] AS BEGIN SELECT baslik, ozet FROM tblMakaleler WHERE yayin_durumu = 0 END
Prosedür Oluştu

Prosedürü Çalıştıralım
EXEC SP_Makaleler_Onaysiz
Sonuç

----------------------------------------------------------------------------
Koşul belirterek makaleleri yayınlayalım (Yayın durumunu parametre olarak belirtelim).
CREATE Proc [SP_Makaleler_Kosullu] ( @Yayin_Durumu TINYINT ) AS BEGIN IF (@Yayin_Durumu = 0) BEGIN SELECT baslik, ozet FROM tblMakaleler WHERE yayin_durumu = 0 END ELSE IF (@Yayin_Durumu = 1) BEGIN SELECT baslik, ozet FROM tblMakaleler WHERE yayin_durumu = 1 END ELSE BEGIN SELECT baslik, ozet FROM tblMakaleler END ENDProsedür Oluştu

Yayında olan makaleleri listelemek için @Yayin_Durumu adlı parametre değerini 1 olarak belirlersek istediğimiz sonuca ulaşırız.
EXEC SP_Makaleler_Kosullu 1
Sonuç

Bol prosedürlü vakitler :)
Kaynak: http://www.ontedi.com/sql/mssqlde-stored-procedure-kullanarak-select-secme-islemi-yapmak
ontedi tarafından 27/Oca/16 10:20 tarihinde düzenlenmiştir -
Güzel paylaşım hocam teşekkürler, keşke dün paylaşsaydınız veri tabanı yönetim sistemleri sınavım vardı :D
-
CREATE Proc [SP_Makaleler_Kosullu] ( @Yayin_Durumu TINYINT ) AS BEGIN IF (@Yayin_Durumu = 0) BEGIN SELECT baslik, ozet FROM tblMakaleler WHERE yayin_durumu = 0 END ELSE IF (@Yayin_Durumu = 1) BEGIN SELECT baslik, ozet FROM tblMakaleler WHERE yayin_durumu = 1 END ELSE BEGIN SELECT baslik, ozet FROM tblMakaleler END ENDbunun için koşul belirtmeye gerek yok.
CREATE Proc [SP_Makaleler_Kosullu] ( @Yayin_Durumu TINYINT ) AS BEGIN SELECT baslik, ozet FROM tblMakaleler WHERE yayin_durumu=@Yayin_Durumu END
bu örnekte benden olsun.
JerusaLem tarafından 27/Oca/16 15:29 tarihinde düzenlenmiştir