Önceki yazımda Procedure kullanımı hakkında ayrıntılı bilgi vermiştim. Bu yazım Function nasıl yazılır, nasıl kullanılır, nasıl güncelleştirilir, nasıl silinir gibi konular hakkında olacak.
Function Nedir?
Functionlar parametre alıp geriye bir değer veya tablo döndüren kurallardır. Bizim oluşturduklarım User Defined Function diye geçer ama max,avg, gibi fonsiyonlar ise System Function lardır. Function’lar
- Select içerisinde kullanırlar. Örneğin “Count(*), Sum, Max, Avg vs” fonksiyonları tek başına kullanamazsınız.
- Uygulamalarda çağırılabilirler
- Bir başka fonksiyon içerisinde çağırılabilirler
- Check Constrait gibi kullanılabilirler
- Stored Procedure yerine kullanabilirler
Function Oluşturma
Create Function TekMiCiftMi(@deger int)
returns bit –(bit yerine Table yazarsanız geriye tablo döndür)
as
begin
declare @donen bit
if (@deger % 2 = 0)
set @donen=0
else
set @donen=1
return @donen
end
Function Kullanımmı
(database owner şemasında oluşturduk. O yüzden bu şekilde ulaşıyoruz.)
Select dbo.TekMiCiftMi(5) as Sonuc
Function Düzeltme
View, Procedure lerde olduğu gibi Alter dedikten sonra nesne adı ve daha sonrada nesne ismi şeklinde:
Alter Function TekMiCiftMi
…..
Function Silme
View, Procedure lerde olduğu gibi Drop dedikten sonra nesne adı ve daha sonrada nesne ismi şeklinde:
Drop Function TekMiCiftMi
….
Function’a Nasıl Ulaşırım?
Procedure ile Function Arasındaki Farklar
- Function Select içerisinde kullanılır ama Procedure ün böyle bir zorunluluğu yoktur. Procedure tek başına kullanılabilir
- Procedure geriye tablo döndürür, Function geriye mutlaka değer döndürür(tablo da olabilir)
- Function ı, eğer owner üzerinde kayıtlı ise, dbo. dedikten sonra çağırırsınız ama procedure u sadece adını yazarak çağırabilirsiniz
Tavsiye: http://msdn.microsoft.com/en-us/library/ms186755.aspx