SQL

SQL Ders20- Stored Procedure Kullanımı

Öncelikle yazdığımız stored procedure’ler veri tabanın neresinde saklanıyor bu konuyla girişimizi yapalım. Oluşturulan stored procedure’lar  hangi veri tabanında oluşturduysanız onun Programmability->Stored Procedures adı altında toplanıyor olacaktır.

Daha önceden oluşturulan ve oluşacak olan stored procedure’ler burada depolanacaklardır. Eğer stored procedure’ları silerseniz burada göremeyeceksiniz.

Haydi şimdi bir stored procedure oluşturalım. İlk olarak parametresiz bir procedure yazımının şablonunu verelim.

create proc/procedure <procedure adı>
as
begin
< yazılacak ilgili sorgu komutu>
end

İkinci olarak ise parametreli bir procedure yazımının şablonunu verelim.

create proc/procedure   <procedure adı>
(
@prm1,
@prm2  
)
as
begin
< yazılacak ilgili sorgu komutu>                                                                                      
end

İlk olarak yine Northwind veritabanını kullanarak örneklerimi geliştiriyor olacağım. Northwind veri tabanında olan ürünlerimi listeleyen ama sadece id ve ürün ismini gösteren stored procedure oluşturalım.

create proc sp_urunleriGetir
as
begin
select ProductID,ProductName from Products
end

Create anahtar kelimesiyle başlar ve ardından bunun stored procedure olduğunu anlamak için proc anahtar kelimesi kullanılır ve bu procedure’ümüze bir isimlendirme yapmak gerekir. Bizim oluşturacağımız stored procedure’ler sp_ ön ön ekiyle başlar. Daha sonra yapılması istenilen kodlar yazılır.

Bu oluşturulan stored procedure’u nasıl çalıştıracağımıza değinelim. Aşağıdaki gibi stored procedure’lerinizi çağırabilirsiniz.

exec sp_urunleriGetir

Şimdi ise parametre alan ve geriye değer döndüren bir stored procedure yazalım.

Kategori tablosuna dışarıdan verilen değerlere göre yeni kategori eklemeyen stored procedure yazalım.

create proc sp_YeniKategoriEkle
(
@ad nvarchar(15),
@aciklama nvarchar(15)
)
as
begin
insert into Categories (CategoryName, [Description])
values (@ad,@aciklama)
end
go

exec sp_YeniKategoriEkle 'Pide', 'Yumurtalı pide'

Bakalım eklenmiş mi sorgumuzu test edelim.

select * from Categories

Burada dikkat edilmesi gereken nokta ise veri tabanında bulunan kolonların veri tiplerini doğru yazmanız gerekmektedir.

Bazen de RECOMPILE ve ENCRYPTION ifadelerini kullanmak isteyebilirsiniz. Bunların açıklamalarına da aşağıda değindim.

* RECOMPILE ifadesi Stored procedure her çalıştırmada (execute) yeniden derlenecek anlamına gelir.

* ENCRYPTION ifadesi yazılan kodun şifrelenmesidir. Şifrelenmiş kodu sadece o prosedürü yaratan ve system admin olan görebilir.

Yazdığınız stored procedure’u silmek isterseniz de aşağıdaki komutu kullanarak yapabilirsiniz.

drop proc sp_YeniKategoriEkle

hakkımdaki her şeyi bu blogda bulabilirsin. Haydi sende bir göz gezdirmeye ne dersin?

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir