Exercice Langage SQL : Requêtes sur les Procédures stockées


Les Procédures stockées

Travail à Faire:

  1. Créer une procédure stockée qui affiche les clients dont la quantité commande est supérieur à 75 et les factures sont réalisées entre 2003 et 2004
  2. Créer une procédure stockée qui retourne la somme des prix à payer par tous les clients en utilisant un paramètre de sortie.
  3. Créer une procédure qui affiche les noms et les prénoms des clients dont le nom commence par ‘Al’ en utilisant un cursor qui permet d’extraire les lignes ligne par ligne
  4. Créer une procédure qui exécute la procédure précédente
  5. Créer la procédure stockée qui compte le nombre de commandes d’un client et affiche le résultat
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667681) Créer une procédure stockée qui affiche les clients dont la quantité commande est supérieur à 75 et les factures sont réalisées entre 2003 et 2004 CREATE proc E;1ASSELECT * FROM Client WHERE EXISTS(SELECT * FROM CommandeWHERE IdClient=Client.IdClient AND Quntité>75 AND EXISTS(SELECT * FROM FactureWHERE datefacture BETWEEN '01/01/2003'AND '31/12/2004'ANDNumCommande=Commande.NumCommande ))exec E;1 2) Créer une procédure stockée qui retourne la somme des prix à payer par tous les clients en utilisant un paramètre de sortie. CREATE proc E;2@somme money outputASSELECT @somme = sum(PrixTotal)FROM CommandeIF @somme 1000print 'La société va fermer ses portes.'else---SELECT 'La société a réalisé ' + convert (varchar(20), @somme)+' F' as PrixTotalSELECT @somme AS SommeRéaliségodeclare @P moneyexec E;2 @P output 3) Créer une procédure qui affiche les noms et les prénoms des clients dont le nom commence par ‘Al’ en utilisant un cursor qui permet d"’"extraire les lignes ligne par ligne CREATE proc ProcCursorASDECLARE Cur CURSOR FORSELECT Nom, Prénom FROM Client WHERE Nom LIKE 'Al%'OPEN CurFETCH NEXT FROM CurWHILE @@FETCH_STATUS = 0BEGININSERT INTO client VALUES(2056,'toto','titi','Mars')FETCH NEXT FROM CurENDCLOSE CurDROP proc ProcCursorexec ProcCursor 4) Créer une procédure qui exécute la procédure précédente CREATE proc ProcAppelante@P1 varchar(10)ASexec @P1---------exec ProcAppelante 'ProcCursor' 5) Créer la procédure stockée qui compte le nombre de commandes d"’"un client et affiche le résultat CREATE proc prc(@id int,@var int output)ASSELECT @var = count(NumCommande)FROM Commande WHERE IdClient=@idGROUP BY IdClientDROP proc prcdeclare @P intExec prc 1578,@P outputSELECT @p AS NbreCommandes 
Article publié le 13 Décembre 2011