Skip to main content

User-Defined Functions (Kullanıcı-Tanımlı Fonksiyonlar)

Sql sisteminde hazır gelen birçok fonksiyon vardır. Bunlara  “System Functions” diyoruz. Birde bizim kendi oluşturduğumuz fonksiyonlar var. Bunlara da  “User Defined Functions (Kullanıcı-Tanımlı Fonksiyonlar)” diyoruz. Fonksiyonların asıl amacı elimizdeki veriyi hızlıca manipüle etmeye yarar.

 

SQL’de 3 çeşit fonksiyon vardır.

1.Inline Table-values Function (Tablo olarak değer döndürür)

2.Multi Statement table-values Function (Tablo olarak değer döndürür)

3.Scalar-values Function (Geriye tek bir değer döndürür)

“Scalar” fonksiyonlar tanımlanırken değil ama çağırılırken ikinci kısmıyla birlikte yani başında “dbo.“ (Database Owner – Veritabanı Sahibi) sözcüğü ile çağırmak zorundadır. “Table Valued” fonksiyonlarında böyle bir zorunluluk yoktur. Ayrıca ”Scalar” ve “Multistatement Table Valued” fonksiyonlarda “begin-end” sözcüklerinin kullanılması şarttır.

GO

SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

-- =============================================
ALTER FUNCTION [dbo].[FN_KDVDahilFiyat]
(
@fiyat float,
@kdv float
)
RETURNS float
AS
BEGIN

declare @KDVToplam float

SET @KDVToplam =(@fiyat*(CAST(@kdv AS FLOAT)/100))+@fiyat

-- Return the result of the function
RETURN @KDVToplam

END