Procédures stockées

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

Meghan Kwartler

IT Consultant

Qu'est-ce qu'une procédure stockée ?

Quoi ?

Des routines qui

  • Acceptent des paramètres d'entrée
  • Exécutent des actions (EXECUTE SELECT, INSERT, UPDATE, DELETE et autres instructions de procédure)
  • Renvoient un statut (succès ou échec)
  • Renvoient des paramètres de sortie
Écrire des fonctions et des procédures stockées dans SQL Server

Pourquoi utiliser des procédures stockées ?

Pourquoi ?

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

Quelle est la différence ?

UDF

  • Doivent renvoyer une valeur
    • Valeur de type table autorisée
  • SELECT imbriqué autorisé
  • Pas de paramètres de sortie
  • Pas de INSERT, UPDATE, DELETE
  • Impossible d'exécuter des procédures stockées
  • Pas de gestion des erreurs

Procédures stockées (SP)

  • Valeur de retour facultative
    • Pas de valeur de type table
  • Impossible de les imbriquer dans un SELECT pour exécuter
  • Renvoient paramètres de sortie et statut
  • INSERT, UPDATE, DELETE autorisés
  • Peuvent exécuter fonctions et procédures
  • Gestion des erreurs avec TRY...CATCH
Écrire des fonctions et des procédures stockées dans SQL Server

CREATE PROCEDURE avec paramètre OUTPUT

-- First four lines of code
-- SP name must be unique 
CREATE PROCEDURE dbo.cuspGetRideHrsOneDay 
    @DateParm date,
    @RideHrsOut numeric OUTPUT
AS
.......
Écrire des fonctions et des procédures stockées dans SQL Server

CREATE PROCEDURE avec paramètre OUTPUT

CREATE PROCEDURE dbo.cuspGetRideHrsOneDay
    @DateParm date,
    @RideHrsOut numeric OUTPUT
AS
SET NOCOUNT ON
BEGIN
SELECT 
  @RideHrsOut = SUM(
    DATEDIFF(second, PickupDate, DropoffDate)
  )/ 3600
FROM YellowTripData
WHERE CONVERT(date, PickupDate) = @DateParm
RETURN
END;
Écrire des fonctions et des procédures stockées dans SQL Server

Paramètres de sortie vs valeurs de retour

Paramètres de sortie

  • Peuvent être de tout type de données
  • Plusieurs par procédure possibles
  • Ne peuvent pas être de type table

Valeur de retour

  • Indique le succès ou l'échec
  • Uniquement de type entier
  • 0 indique le succès, toute autre valeur indique l'échec
Écrire des fonctions et des procédures stockées dans SQL Server

Vous êtes prêt à créer des procédures !

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

Preparing Video For Download...