Stored Procedures nedir nasıl kullanılır yönetimi nasıl olur

STORED PROSEDÜR
Herhangi bir işlemi yerine getirebilmek için yazılan kodların bir paket içerisinde tutulmuş halidir.Store prosedür oluşturmanın amacı sıkça yapılan işlemlerin bir defa yazılarak programın akışına göre tekrar tekrar kullanılmasını sağlamaktır.Stored prosedürler kendi başlarına çalışmazlar.Ana program içerisinden çağrılarak çalıştırılabilir.Oluşturma şekillerine göre stored prosedürler 4’e ayrılır;
1.) Extended Stored Prosedür
Dll dosyaları şeklinde derlenmiş prosedürlerdir.SQL server dışında kullanılırlar.İsimleri xp ile başlar.Master veri tabanında tutulurlar.
2.) System Stored Prosedür
Genellikle sistem tabloları hakkında bilgi döndürmek için kullanılırlar.İsimleri sp ile başlar.Master veri tabanında tutulurlar
3.) CLR Stored Prosedür

TSQL’in destekleyemediği kod yazımları bu programlama ile dilleriyle kodlar yazılır.Güvenlik ve denetim gibi konularda SQL Server’a avantaj sağlar.

4.) Kullanıcı Tanıtımlı Stored Prosedür

Programcıların yazdığı prosedürlerdir.Geçerli oldukları yere göre 3 çeşittir: Geçici , Yerel ve Uzak.
Stored Prosedürün Çalıştırma Aşamaları :
• Stored prosedürün bileşenleri parçalara ayrıştırılır.
• Veri tabanı içerisinde nesnelere gönderme yapan referanslar varsa geçerli olup olmadıkları kontrol edilir.
• Derleme aşamasında stored prosedürün adı sysobject tablosuna, kodları ise syscomments tablosuna kayıt edilir.
• Bu işlemlerin ardından bir ağaç şeması elde edilir.Bu şema sysprocedures tablosunda saklanır.

Stored Prosedürün Oluşturulması:
Bir stored procedure oluşturabilmek için sysadmin ,db_owner yada dll_admin rollerinden birine sahip olmanız gerekmektedir.
Bir stored procedure içinde table,view,kullanıcı tanımlı stored procedure ve diğer stored procedurler kullanılabilir.
Bir stored procedure Create Default , Create Procedure , Create Rule, Create Trigger, Create View ifadelerini içermez.
Örnek :
Create procedure notlar
as
select * from ogr_not
where final_not >55
go

Stored Procedure Kullanım Hakkı :
Bir stored procedure kullanabilmek için kullanıcılara izin vermek gerekir.
Grant on procedure_adı to Kullanıcı < Kullanıcıya izin verir.
Bunun için deny on procedure_adı to Kullanıcı < Kullanıcıyı kısıtlamayı kaldırır.
Örnek 2 :
create procedure durumu
as
select nt1,nt2,nt3,[durum]=
case
when (nt1+nt2+nt3) / 3 > 45 then ‘geçti’
when (nt1+nt2+nt3)/ 3 <45 then ‘kaldý’
end
from ogrenci
Çalıştırması : exec durumu

Bir Cevap Yazın

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