Store Procedure Kullanımı

Bu yazıda store procedure oluşturup kullanmayı göreceğiz.

Stored Procedure’ler database server’da saklanan SQL ifadeleri gibi düşünelebilir. Bir programlama dilindeki fonksiyonlar gibi parametre alabilirler. Bu parametrelere göre bir sorgu çalıştırıp cevap gönderilirebilir.

Stored Procedure’ler database server’ında saklanmasından dolayı daha hızlı çalışırlar. Bir stored procedure ilk çalıştırıldığı zaman derlenir. Bir daha çalıştırılınca derlenmeden çalışırlar. Halbuki bir program içinden SQL ifadeleri ile server’a bağlanırsanız her bağlanışsa SQL ifadesi derlenir. Bu da zaman kaybı demektir.

Sotered procedure’un diğer bir özelliği ise programlama deyimleri içermesidir. if, next, set vs.. programlama dillerindekine benzer özellikler sunar. Gelen parametrelere göre sorgu yapılıp sonucun dönmesi sağlanabilir.

Bir databse projesi gerçekleştiriyorsanız kesinlikle stored procedure kullanmalısınız. Hatta bazı progamcılar programlarının hiç bir yerinde SQL ifadesi kullanmazlar. Her zaman stored procedure’ler ile çalışırlar.

Peki store procedure nasıl oluşturulur?

CREATE PROCEDURE [Procedure Adı]

(

@parametre [datatype]

)

AS

Begin

Select/İnsert/update/delete

End

Store Procedure’ünüzü update etmek isterseniz “Create” ifadesini alter yapmanız yeterlidir.

Örnek bir insert procedure inceleyelim şimdi: Burda amaç tabloda aynı kayıt varmı kontrol edip yok ise insert işlemini gerçeklemek.”Exists” vb.net deki isNothing(deger) metoduyla aynı mantıkla çalışmakta.

Create procedure [dbo].[Sp_TICKETAddUser]

(

@userno int,

@user_ticketno int

)

as

begin

If Not Exists (Select * From TICKET_USER us where us.tcku_UserNo = @userno and us.tcku_UserTicketId=@user_ticketno)

Begin

insert into dbo.TICKET_USER

(

tcku_UserNo,

tcku_UserTicketId,

tcku_UserComplete,

tcku_UserComplateDate,

tcku_UserManageConfirm,

tcku_UserConfirmDate

)

values

(

@userno,

@user_ticketno,

0,

‘1900-01-01’,

0,

‘1900-01-01’

)

End

end