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