SQL Server da Function Kullanimi

Merhaba Arkadaslar,

Bu makalemizde SQL Server da önem arz eden, bazen gerekliligini iliklerinize kadar hissettiginiz kendi yazacagimiz SQL Functionlarini inceleyecegiz.

Functionlar istenilen deger tipinde dönüs yapabilir. INT, VARCHAR deger döndürebileceginiz gibi bir tablo da döndürebilirsiniz. Basit bir function ile örnekleyelim konuyu.

.

Mesela MUSTERI tablosunda parametre olarak verdigimiz ID’den ID’si büyük esit olan müsterilerden yasi en büyük olanin yasini döndürelim.

CREATE FUNCTION udf_MusteriEnBuyukYas

(

@Id int

— alacagi parametreleri virgül

–ile ayirarak parametre birden cok parametre verebilirsiniz

)

RETURNS int –döndürecegi degerin tipi

AS

BEGIN

 

  DECLARE @Result int

  SET @Result = (SELECT Max(Yas) FROM MUSTERI Where Id >=@Id)

 

RETURN(@Result)

END

 

Peki, bunu nasil çalistiracagiz. Hemen onun da kod örnegini verelim.

 

 

DECLARE @Id int

SET @Id = 2

SELECT dbo.udf_MusteriEnBuyukYas(@Id)

 

 

 

Çok güzel bir fonksiyon örnegi ile konumuzu bitirelim. Bu fonksiyon bir tablo döndürmektedir. Mesela DB den adinda “Musteri” nin geçtigi  ‘Default or DEFAULT constraint’

‘Scalar function’ ,’Inlined table-function’ ,’Stored procedure’ ,’Rule’,’Replication filter stored procedure’ ,’Table function’ ,’Trigger’ ,’User table’ ,’View’ ,’Extended stored procedure’ leri bulalim ve tipini de yazdiralim. Bunun için asagidaki fonksiyonu olusturalim.

.

 

Create Function dbo.udf_FindObjects (@string varchar(100))

returns @tbl  Table(Name varchar(128), Type varchar(100))

AS

BEGIN

insert into @tbl(Name,Type) select name, ObjectType = case

when TYPE=‘D’ then ‘Default or DEFAULT constraint’

when TYPE=‘FN’ then ‘Scalar function’

when TYPE=‘IF’ then ‘Inlined table-function’

when TYPE=‘P’ then ‘Stored procedure’

when TYPE=‘R’ then ‘Rule’

when TYPE=‘RF’ then ‘Replication filter stored procedure’

when TYPE=‘TF’ then ‘Table function’

when TYPE=‘TR’ then ‘Trigger’

when TYPE=‘U’ then ‘User table’

when TYPE=‘V’ then ‘View’

when TYPE=‘X’ then ‘Extended stored procedure’

else ‘others’

end

 from sysobjects where id in

(select id from syscomments where text like ‘%’+@string+‘%’)

return

END

 

Örnek sorgu olarak da

 

SELECT * FROM dbo.udf_FindObjects(‘musteri’) çalistirdigimiz da asagidaki sonucu aliriz.

 

 

4 thoughts on “SQL Server da Function Kullanimi

Guests için bir cevap yazın Cevabı iptal et

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