Fonctions scalaires définies par l'utilisateur

Écrire des fonctions et des procédures stockées dans SQL Server

Meghan Kwartler

IT Consultant

Fonctions définies par l'utilisateur (UDF)

Quoi ?

Routines qui :

  • Acceptent des paramètres d'entrée
  • Exécutent une action
  • Renvoyent un résultat (valeur scalaire unique ou table)

Pourquoi ?

  • Peuvent réduire le temps d'exécution
  • Peuvent réduire le trafic réseau
  • Favorisent la programmation modulaire
Écrire des fonctions et des procédures stockées dans SQL Server

Qu'est-ce que la programmation modulaire ?

  • Technique de conception logicielle
  • Sépare les fonctionnalités en modules indépendants et interchangeables
  • Permet la réutilisation du code
  • Améliore la lisibilité du code
Écrire des fonctions et des procédures stockées dans SQL Server

Fonctions dans les recettes

Recette du chapitre 2 : programmation modulaire4.jpg

Écrire des fonctions et des procédures stockées dans SQL Server

Paramètres d'entrée de la fonction Bake

Recette du chapitre 2 : programmation modulaire3.jpg

Écrire des fonctions et des procédures stockées dans SQL Server

UDF scalaire sans paramètre d'entrée

-- Scalar function with no input parameters
CREATE FUNCTION GetTomorrow()
    RETURNS date AS BEGIN
RETURN (SELECT DATEADD(day, 1, GETDATE()))
END
Écrire des fonctions et des procédures stockées dans SQL Server

UDF scalaire avec un paramètre

-- 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;
Écrire des fonctions et des procédures stockées dans SQL Server

UDF scalaire avec deux paramètres d'entrée

-- 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;
Écrire des fonctions et des procédures stockées dans SQL Server

À vous de créer des UDF !

Écrire des fonctions et des procédures stockées dans SQL Server

Preparing Video For Download...