Скалярні користувацькі функції

Написання функцій і збережених процедур у SQL Server

Meghan Kwartler

IT Consultant

Користувацькі функції (UDF)

Що це?

Процедури, які

  • Можуть приймати вхідні параметри
  • Виконують дію
  • Повертають результат (одне скалярне значення або таблицю)

Навіщо?

  • Зменшують час виконання
  • Зменшують мережевий трафік
  • Дають змогу модульного програмування
Написання функцій і збережених процедур у SQL Server

Що таке модульне програмування?

  • Прийом проєктування ПЗ
  • Розділяє функціональність на незалежні, взаємозамінні модулі
  • Дозволяє повторно використовувати код
  • Підвищує читабельність коду
Написання функцій і збережених процедур у SQL Server

Функції в рецептах

Функції в рецептах — схема

Написання функцій і збережених процедур у SQL Server

Вхідні параметри функції Bake

Параметри входу функції випікання — схема

Написання функцій і збережених процедур у SQL Server

Скалярна UDF без вхідних параметрів

-- Scalar function with no input parameters
CREATE FUNCTION GetTomorrow()
    RETURNS date AS BEGIN
RETURN (SELECT DATEADD(day, 1, GETDATE()))
END
Написання функцій і збережених процедур у SQL Server

Скалярна UDF з одним параметром

-- Scalar function with one parameter
CREATE FUNCTION GetRideHrsOneDay (@DateParm date)
    RETURNS numeric AS BEGIN
RETURN (
  SELECT 
    SUM(
      DATEDIFF(second, PickupDate, DropoffDate)
    )/ 3600 
  FROM 
    YellowTripData 
  WHERE 
    CONVERT (date, PickupDate) = @DateParm
) END;
Написання функцій і збережених процедур у SQL Server

Скалярна UDF з двома параметрами

-- Scalar function with two input parameters
CREATE FUNCTION GetRideHrsDateRange (
  @StartDateParm datetime, @EndDateParm datetime
) RETURNS numeric AS BEGIN RETURN (
  SELECT 
    SUM(
      DATEDIFF(second, PickupDate, DropOffDate)
    )/ 3600 
  FROM YellowTripData 
  WHERE 
    PickupDate > @StartDateParm 
    AND DropoffDate < @EndDateParm
) END;
Написання функцій і збережених процедур у SQL Server

Тепер ваша черга створювати UDF!

Написання функцій і збережених процедур у SQL Server

Preparing Video For Download...