T-SQL Stored Procedure (Saklı Yordamlar)

T-SQL Stored Procedure (Saklı Yordamlar) Nedir? T-SQL Stored Procedure (Saklı Yordamlar) kullanımı hakkındaki tüm her şeye bu konumuzdan ulaşabilirsiniz.

T-SQL Stored Procedure (Saklı Yordamlar)

T-SQL Stored Procedure (Saklı Yordamlar)

Stored procedure, SQL Server üzerinde sorgulamalar yapmak için oluşturulan derlenmiş T-SQL ifadeleridir.

Normal SQL ifadeleri her çalıştırılıdığında derlenmektedir. Bundan dolayı ise doğal olarak sorgulama hızında yavaşlamalar meydana gelir. Stored procedureler ilk oluşturulduklarında derlenirler ve sonraki kullanımlarda tekrar derlemeye gerek kalmadan çalıştırılabilirler.

Oluşturulan Stored procedurler  veri tabanı üzerinde olduğu için sunucu üzerinde depolanırlar ve çalıştırıldığında yine sunucu üzerinde çalışırlar.

Stored prosedürler dışarıdan değer alabilir ve geriye değer döndürebilirler.

Kullanımı:

CREATE PROCEDURE Prosedür_Adı (parametreler)
AS
BEGIN
	--T-SQL ifadesi
END

Örnek: Öğrenci derslerini listeleyen stored procedure yazalım.

CREATE PROCEDURE Ogr_Dersleri
AS
BEGIN
	SELECT ad
		,soyad
		,dadi
		,vize
		,final
	FROM OgrDersleri
	INNER JOIN OgrenciTanim ON OgrDersleri.ogrid = OgrenciTanim.ogrid
	ORDER BY ad
END

Örnek: Dışarıdan gönderilen parametreye göre;

  • Öğrencileri listeleyen
  • Öğrencinin adına göre arama yapan
  • Öğrencilerin okuduğu bölümü listeleyen
  • Bölüme göre okuyan öğrencileri listeleyen

T-SQL kodunu yazalım.

ALTER PROCEDURE Ogrenci_Islemler (
	@islem NVARCHAR(30)
	,@bolum NVARCHAR(30)
	,@ad NVARCHAR(30)
	)
AS
BEGIN
	IF (@islem = 'Öğrencileri Listele')
		SELECT *
		FROM OgrenciTanim
	ELSE IF (@islem = 'Ada Göre Ara')
		SELECT *
		FROM OgrenciTanim
		WHERE ad LIKE @ad
	ELSE IF (@islem = 'Bölüme Göre Öğrencileri Listele')
		SELECT *
		FROM Bolum
		INNER JOIN OgrenciTanim ON Bolum.blmid = OgrenciTanim.ogrid
	ELSE IF (@islem = 'Bölüme Göre Arama')
		SELECT *
		FROM Bolum
		INNER JOIN OgrenciTanim ON Bolum.blmid = OgrenciTanim.ogrid
		WHERE blmadi LIKE @bolum
END

Bölüme Göre Arama:

Execute Ogrenci_Islemler 'Bölüme Göre Arama','d%','' 

Ada Göre Arama: 

Execute Ogrenci_Islemler 'Ada Göre Ara','','a%' 

Tepkiniz Nedir?

like

dislike

love

funny

angry

sad

wow