MSSQL’de Function Kullanımı (Create Function, Alter Function, Drop Function)


Ö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

Görsel Kaynak:http://www.webmekani.net/images/database.png
  1. Leave a comment

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.

%d bloggers like this: