Funkcja zdefiniowana przez użytkownika w SQL

Słownik kwalifikacji INF.03 - Tworzenie i administrowanie stronami i aplikacjami internetowymi oraz bazami danych

Funkcja zdefiniowana przez użytkownika (ang. User Defined Function, UDF) to element bazy danych tworzony przez programistę lub administratora, który można wywołać w zapytaniu SQL.

Funkcja taka przyjmuje argumenty, wykonuje określone operacje i zwraca wynik. W zależności od typu może zwrócić:

  • pojedynczą wartość, np. liczbę, tekst, datę,
  • zestaw danych widoczny podobnie jak tabela.

Gdzie można jej użyć?

Funkcję można wywołać np. w instrukcji SELECT, w klauzuli WHERE albo jako źródło danych, jeśli zwraca tabelę.

Przykład funkcji zwracającej wartość:

SELECT dbo.ObliczRabat(cena) AS rabat
FROM Produkty;

Przykład funkcji zwracającej dane tabelaryczne:

SELECT *
FROM dbo.ProduktyWTowarze('komputer');

Dlaczego nie procedura ani wyzwalacz?

Procedura składowana również jest zapisanym kodem SQL, ale zwykle uruchamia się ją osobnym poleceniem, np. EXEC, a nie jak zwykłą funkcję wewnątrz zapytania.

Wyzwalacz (trigger) nie jest wywoływany ręcznie w zapytaniu. Uruchamia się automatycznie po zdarzeniu, np. INSERT, UPDATE lub DELETE.

Najważniejsze na egzamin

Jeżeli w pytaniu jest mowa o elemencie SQL, który można wywołać wewnątrz zapytania i który zwraca wartość lub dane jak tabela, chodzi o funkcję zdefiniowaną przez użytkownika.