Skalära användardefinierade funktioner

Skriva funktioner och lagrade procedurer i SQL Server

Meghan Kwartler

IT Consultant

Användardefinierade funktioner (UDF:er)

Vad?

Rutiner som

  • Kan ta emot indataparametrar
  • Utför en åtgärd
  • Returnerar ett resultat (ett skalärt värde eller en tabell)

Varför?

  • Kan minska exekveringstiden
  • Kan minska nätverkstrafiken
  • Möjliggör modulär programmering
Skriva funktioner och lagrade procedurer i SQL Server

Vad är modulär programmering?

  • Teknik inom mjukvarudesign
  • Delar upp funktionalitet i oberoende, utbytbara moduler
  • Möjliggör återanvändning av kod
  • Förbättrar kodens läsbarhet
Skriva funktioner och lagrade procedurer i SQL Server

Funktioner i recept

Kapitel 2 – recept för modulär programmering 4

Skriva funktioner och lagrade procedurer i SQL Server

Indataparametrar för funktionen Bake

Kapitel 2 – recept för modulär programmering 3

Skriva funktioner och lagrade procedurer i SQL Server

Skalär UDF utan indataparameter

-- Scalar function with no input parameters
CREATE FUNCTION GetTomorrow()
    RETURNS date AS BEGIN
RETURN (SELECT DATEADD(day, 1, GETDATE()))
END
Skriva funktioner och lagrade procedurer i SQL Server

Skalär UDF med en parameter

-- 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;
Skriva funktioner och lagrade procedurer i SQL Server

Skalär UDF med två indataparametrar

-- 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;
Skriva funktioner och lagrade procedurer i SQL Server

Nu kör vi en övning!

Skriva funktioner och lagrade procedurer i SQL Server

Preparing Video For Download...