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ı:

CREATE PROCEDURE ad
parametreler
AS
BEGIN
Komutlar
END

Prosedürün çağırılması:

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.

CREATE PROCEDURE OgrenciListele
AS
BEGIN
SELECT * FROM ogrenciler;
END

Prosedürümüzü yazdık. Şimdi bunu çağıralım.

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.

CREATE PROCEDURE Ogrenci
@no int
AS
BEGIN
SELECT * FROM ogrenciler WHERE Numara=@no;
END

Çalıştıralım.

EXEC Ogrenci 113602013

Numarası girilen öğrenciyi silen prosedürü yazalım.

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.

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.

EXEC OgrenciBul 'Çiğdem','KAYA'

Değişken tanımlama:

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:

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.

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.