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')
|
|