SQL Server 2005 - Hızlı El Kitabı
Skip Navigation Links.

FUNCTIONS

Fonksiyonlar, değer döndüren program birimidir.Fonksiyonların en büyük kısıtlaması içinde INSERT,UPDATE,DELETE gibi veriyi değiştiren işlemleri yapamamızdır.

2 çeşit fonksiyon vardır;

1.       Scalar Functions

Scalar functions tek bir değer döndüren fonksiyonlardır.

Parametre olarak Color değerini alan ve rengi paremetre olarak belirttiğimiz ürünlerin kayıt sayısını döndüren bir scalar function gerçekleştirelim;

CREATE FUNCTION GetProductCount(@color NVARCHAR(20)) RETURNS INT

AS

BEGIN

      DECLARE @count INT;

     

      SELECT @count=COUNT(*) FROM Production.Product

      WHERE Color=@color

 

      RETURN @count

END

 

Fonksiyonu çağırmak için şu T-SQL komutunu kullanıyoruz;

SELECT dbo.GetProductCount('Silver')

 

2.       Table-Valued Functions

Scalar functions’dan farkı tek bir değer döndürmek yerine sonucu tablo olarak döndürmektedir.Bu tarz fonksiyonlar genelde SELECT ifadelerinde FROM cümleciğinden sonra kullanılmak üzere oluşturulur.

Parametre olarak Color değerini alan ve geriye Product tablosunda koşula uyan kayıtların ProductID,Name,Color,ListPrice değerlerini döndüren fonksiyonu gerçekleştirelim;

CREATE FUNCTION GetProducts(@color NVARCHAR(20))

RETURNS @retProducts TABLE(

      ProductID   INT PRIMARY KEY NOT NULL,

      [Name]      NVARCHAR(50),

      Color       NVARCHAR(20),

      ListPrice   SMALLMONEY

)

AS

BEGIN

      INSERT @retProducts

      SELECT ProductID,[Name],Color,ListPrice

      FROM Production.Product

      WHERE Color=@color

 

      RETURN;

END

 

Table-Valued function’ı kullanmak için şu ifadeyi kullanabiliriz;

SELECT * FROM dbo.GetProducts('Silver')