Az SQL Serverben saját, úgynevezett felhasználói függvényeket is készíthetünk. Egy ilyen függvénnyel kiszámíthatunk például egy kedvezményes árat az eredeti ár és egy szorzó alapján. A felhasználói függvények létrehozására a CREATE FUNCTION utasítás szolgál, és három fajtájuk van:
Skalárfüggvények A skalárfüggvények egyetlen értéket adnak vissza, ami bármilyen típusú lehet, kivéve a text, ntext, image, cursor, table és timestamp típusokat, illetve a felhasználói adattípusokat.
Helyben kifejtett táblaértékű függvények A helyben kifejtett (inline) táblaértékű függvények table típusú objektumokat adnak vissza. A table objektumok olyanok, mint egy szabályos adatbázistábla, csak a memóriában tárolódnak. A helyben kifejtett táblaértékű függvények egyetlen SELECT utasítással kinyert adatokat adnak vissza.
Többutasításos táblaértékű függvények A többutasításos táblaértékű függvények is table típusú objektumokat adnak vissza, de a helyben kifejtet táblaértékű függvényektől eltérően több T-SQL utasítást tartalmazhatnak.
Példa egy skalárfüggvényre:
-- A DiscountPrice kiszámítja egy termék új árát az eredeti ár és a leértékelési szorzó alapján
CREATE FUNCTION DiscountPrice (@OriginalPrice money, @Discount float)
RETURNS money
AS
BEGIN
RETURN @OriginalPrice * @Discount
END
Ha létrehoztuk a függvényt, meghívhatjuk. A skalárfüggvények meghívása a következő:
tulajdonos.függvénynév
Itt a tulajdonos a függvényt létrehozó adatbázis-felhasználó neve, a függvénynév pedig a függvény neve.