SQL Server – Stored Procedure
Selamün Aleyküm Arkadaşlar;
Saklı prosedürler (Stored Procedure) sql cümleciklerinden oluşur. Bir nevi alt programlardır. Çalışması hızlıdır. Bunun sebebi bir kere derlenmeleridir.
Tanımlanması:
1 2 3 4 5 6 |
CREATE PROCEDURE ad parametreler AS BEGIN Komutlar END |
Prosedürün çağırılması:
1 |
EXEC Proseduradi parametredegeri,... |
Bir ogrenciler tablomuz olsun. Alanları sırasıyla Numara, Ad, Soyad, Bolum, Sinif, Sube olsun.
Bu tabloyu listeleyen bir procedür yazalım. Dışarıdan herhangi bir parametre almayacak.
1 2 3 4 5 |
CREATE PROCEDURE OgrenciListele AS BEGIN SELECT * FROM ogrenciler; END |
Prosedürümüzü yazdık. Şimdi bunu çağıralım.
1 |
EXEC OgrenciListele |
Dönen değer ogrenciler tablosundaki verilerdir.
Numarası girilen öğrencinin kaydını gösteren saklı prosedürü yazalım. Dışarıdan parametre alacak. Numara alanımızın türü int olduğu için parametremizin türü de int olacak.
1 2 3 4 5 6 |
CREATE PROCEDURE Ogrenci @no int AS BEGIN SELECT * FROM ogrenciler WHERE Numara=@no; END |
Çalıştıralım.
1 |
EXEC Ogrenci 113602013 |
Numarası girilen öğrenciyi silen prosedürü yazalım.
1 2 3 4 5 6 |
CREATE PROCEDURE OgrenciSil @no int AS BEGIN DELETE FROM ogrenciler WHERE Numara=@no; END |
Ad ve Soyadı girilen öğrenciyi getiren saklı prosedürü yazalım. İki tane parametre alacak. bir ad alanı için diğeri soyad alanı için.
1 2 3 4 5 6 |
CREATE PROCEDURE OgrenciBul @ad nvarchar(50), @soyad nvarchar(50) AS BEGIN SELECT * FROM ogrenciler WHERE Ad=@ad and Soyad=@soyad; END |
Prosedürümüzü çağıralım.
1 |
EXEC OgrenciBul 'Çiğdem','KAYA' |
Değişken tanımlama:
1 2 3 4 5 6 7 |
CREATE PROCEDURE procedureadi --@parametreadi turu(int, varchar(50),...) AS BEGIN --Declare @degiskenadi turu(int, varchar(50),...) --Komutlar END |
Tanımlanmış bir değişkene tablonun alanından veri almak:
1 2 3 4 5 6 7 |
CREATE PROCEDURE proseduradi @no int AS BEGIN Declare @ad nvarchar(50), @soyad nvarchar(50) SELECT @ad=Ad, @soyad=Soyad FROM ogrenciler WHERE Numara=@no; END |
Bir değişkene veri aktarmak için SET komutu kullanılır.
1 2 3 4 5 6 |
CREATE PROCEDURE proseduradi AS BEGIN Declare @degisken int SET @degisken = 10; END |
Hayırlı günler. Sağlıcakla kalın.
Bu döküman www.ibasoglu.com’a aittir. Kaynak belirtmek suretiyle alıntı yapılabilir.
05 Haziran 2013 @ 09:05
Güzel bir anlatım olmuş teşekkürler