/* Stored Procedureler Veritabanına tanımlanmış metotlardır. Insert,update,delete işlevleri yanı sıra select sorgusunu çalıştırarak tablo verilerini döndürebilirler. Parametre alarak dışarıdan verilecek veriye göre hareket edebilirler. View kavramına göre daha geniş kapsamlıdır ve view'in parametreli haline benzetebiliriz. (Parametreli View) İçeriğinde view kullanılabilir. */
-- Önce tablolarımızı ekleyelim. create table bolumler ( bolumId int IDENTITY(1,1) PRIMARY KEY, bolum nvarchar(50) ) create table calisanlar ( calisanId int IDENTITY(1,1) PRIMARY KEY, bolumNo int, ad nvarchar(50), soyad nvarchar(50) )
-- Şimdi de procedure yazıp insert işlemi yapalım. Create proc sp_calisanEkle ( @yeniBolumNo int, @yeniAd nvarchar(50), @yeniSoyad nvarchar(50) ) AS insert into calisanlar (bolumNo,ad,soyad) values (@yeniBolumNo,@yeniAd,@yeniSoyad) /* Create proc yada Create procedure ile oluştururuz. Proc içi değişkenleri tanımladık başına @ koyarak. As'den sonra ekleme işlemi için tablodaki isimleriyle Proc'da tanımladığımız değişkenleri eşitledik diyebiliriz. */ execute sp_calisanEkle 1,'Gencay','Karadeniz' execute sp_calisanEkle 2,'Sibel','Sibemol' /* Exec ifadesi yada execute, procedure çalıştırma ifadesidir. Sonra proc adı yazılır. 3 parametreliydi. Parametreleri yazıp çalıştırdığımızda ekleme işlemini yapar. */ create proc sp_bolumEkle ( @yeniBolum nvarchar(50) ) AS insert into bolumler(bolum) values (@yeniBolum) execute sp_bolumEkle 'Bilgisayar' SELECT bolum, calisanlar.ad, calisanlar.soyad FROM bolumler INNER JOIN calisanlar ON bolumler.bolumId = calisanlar.bolumNo -- join kullanarak listeleme işlemi gerçekleştirdik. drop proc sp_calisanEkle -- Proc silme kodu -- Güncellemek için alter kullanılır. alter proc sp_calisanEkle ( @yeniBolumNo int, @yeniAd nvarchar(50), @yeniSoyad nvarchar(50) ) AS insert into calisanlar (bolumNo,ad,soyad) values (@yeniBolumNo,@yeniAd,@yeniSoyad)
-- Bir de procedure ile silme işlemi yapalım. create proc sp_kisiSil ( @kisiId int ) as delete from calisanlar where calisanId=@kisiId exec sp_kisiSil '2' -- Id'si 2 olan kişiyi calisanlar tablosundan sildik.