0% ont trouvé ce document utile (0 vote)
95 vues5 pages

Examen SQL Server - Classe 3IIR

Transféré par

Ali Zd
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
95 vues5 pages

Examen SQL Server - Classe 3IIR

Transféré par

Ali Zd
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

Nom & Prénom : Examen SQL Server Note :

Classe : 3IIR
Documents non autorisés
Groupe : Durée : 2 heures

Exercice 1 : QCM (10 Points)


Soit la base de données suivante :

Avion (ID_Avion, Nom_Avion, Compagnie_Avion, Capacite)


Vol (ID_Vol, ID_Avion, Depart, Destination, Date_Depart, Heure_Depart, Date_Arrivee,
Heure_Arrivee)
Passager (ID_Passager, Nom_Passager, Prenom_Passager, ID_Vol)

Cochez la ou les réponse(s) correcte(s)


1. Soit le programme ci-dessous
declare @numav int, @nom_av varchar(20), @cap_av int
declare cur_avion cursor for select ID_Avion, Nom_Avion, Capacite from Avion
open cur_avion
fetch next from cur_avion into @numav, @nom_av, @cap_av
while (@@FETCH_STATUS = 0)
Begin
print 'l''avion numéro '+ convert(varchar(20), @numav) + ' portant le
nom '+ @nom_av + 'a la capacité' +convert(varchar(20), @cap_av);

end
close cur_avion
deallocate cur_avion

Que va faire ce programme ?


a. Il parcourt la table des avions ligne par ligne en affichant le message indiqué
b. Il génère une erreur
c. Il rentre dans une boucle infinie
Justifier votre réponse

2. Supposons que l’on veut exécuter une fonction « getNbrePass » qui retourne le nombre total de
passagers d’un vol donné, Quelle instruction va-t-on utiliser :
a. Exec getNbrePass ‘101’
b. Select [Link] (‘101’)
c. Select getNbrePass (‘101’)
d. Select * From getNbrePass (‘101’)

1|5
3. En utilisant un curseur scrollable, quelle serait l’instruction permettant d’accéder la ligne précédente
(avant la position courante) du curseur :
a. Fetch Prior from Cur1 into @variable1, @variable2
b. Fetch Absolute -1 from Cur1 into @variable1, @variable2
c. Fetch Relative -1 from Cur1 into @variable1, @variable2

4. La procédure stockée « getNom (ID_du_Passager) » retourne le nom du Passager dont l’id est passé
en paramètre. En utilisant les procédures stockées, quelle alternative va-t-on choisir :
a. Procédure stockée avec valeur de retour
b. Procédure stockée avec paramètre de sortie
c. Les deux peuvent être utilisées

5. Soit le programme ci-dessous :

declare @numvol int, @desti varchar(10), @dateD date


declare cur_vol cursor for select ID_Vol, Destination, Date_Depart from Vol
open cur_vol;
fetch RELATIVE -2 from cur_vol into @numvol, @desti, @dateD;
close cur_vol
deallocate cur_vol

Quel est le résultat de ce curseur ?


a. Retourne deux lignes avant la ligne courante
b. Retourne deux lignes après la ligne courante
c. Retourne la deuxième ligne
d. Aucune réponse n’est correcte

6. Une fonction peut avoir des paramètres de sortie.


a. Vrai
b. Faux

7. Peut-on appeler une procédure dans une fonction ?


a. Vrai
b. Faux

8. Supposons que l’on veut exécuter une procédure avec des paramètres d’entrée « insertPassager »
qui permet d’insérer de nouveaux passagers, Quelle instruction peut-on utiliser :
a. EXECUTE insertPassager @pnum=6, @pnom='Hamdan', @pprenom='Ali', @vnum=100;
b. EXECUTE insertPassager 'Hamdan', 6, 'Ali', 100;
c. EXECUTE insertPassager @vnum=100, @pprenom='Ali', @pnum=6, @pnom='Hamdan';
e. Toutes les réponses sont correctes

9. Une fonction doit obligatoirement retourner un entier.


a. Vrai
b. Faux

10. Pour définir un point de sauvegarde dans une transaction, nous utilisons la syntaxe :
a. SAVEPOINT InsertAvion
b. SAVE TRANSACTION InsertAvion
c. TRANCOUNT InsertAvion

2|5
Exercice 2 : T-SQL (10 Points)
Soit la base de données suivante :

1) A. Ecrire une fonction getNbrEmp qui, pour un projet et un département donnés, retourne le
nombre total des employés qui ont travaillé sur ce projet et dans ce département.

B. Ecrire le script qui permet d’exécuter cette fonction.

…………………………………………………………………………………………………
……………………………………………………………………………………………………
……………………………………………………………………………………………………
……………………………………………………………………………………………………
……………………………………………………………………………………………………
……………………………………………………………………………………………………
……………………………………………………………………………………………………
……………………………………………………………………………………………………
……………………………………………………………………………………………………
……………………………………………………………………………………………………
……………………………………………………………………………………………………
……………………………………………………………………………………………………
……………………………………………………………………………………………………
……………………………………………………………………………………………………
……………………………………………………………………………………………………
……………………………………………………………

2) A. Ecrire une procédure getNbrProj qui, pour un employé donné, retourne en sortie le numéro de
département et le nombre de projet sur lesquels il a travaillé.

B. Ecrire le script qui permet d’exécuter cette procédure.

……………………………………………………………………………………………………
……………………………………………………………………………………………………
……………………………………………………………………………………………………

3|5
……………………………………………………………………………………………………
……………………………………………………………………………………………………
……………………………………………………………………………………………………
……………………………………………………………………………………………………
……………………………………………………………………………………………………
……………………………………………………………………………………………………
……………………………………………………………………………………………………
……………………………………………………………………………………………………
……………………………………………………………………………………………………
……………………………………………………………………………………………………
……………………………………………………………………………………………………
……………………………………………………………………………………………………
……………………………………………………………………………………………………
……………………………………………………………………………………………………
……………………………………………………

3) Ecrire une fonction getListeProjet qui retourne la liste des projets (Nom projet, Date de début,
Date de fin) d’un employé donné.

……………………………………………………………………………………………………
……………………………………………………………………………………………………
……………………………………………………………………………………………………
……………………………………………………………………………………………………
……………………………………………………………………………………………………
……………………………………………………………………………………………………
……………………………………………………………………………………………………
……………………………………………………………………………………………………
……………………………………………………………………………………………………
……………………………………………………………………………………………………
……………………………………………………………………………………………………
……………………………………………………………………………………………………
……………………………………………………………………………………………………
……………………………………………………………………………………………………
……………………………………………………………………………………………………
…………………………………………………………

4) Ecrire une procédure ListEmpInfo qui, pour chaque employé, effectue les opérations suivantes :

 Affiche le Nom de l’employé, le nom de son département, et son supérieur, sous la forme :
L’Employé : …… appartient au département : ……….. , son supérieur est ……….

 Si l’employé a des projets associés, afficher la liste de ses projets (Nom du Projet, sa date de
début et sa date de fin) sous la forme :
Le Projet ….. A débuté le …… et a fini le ………..

Note : Penser à utiliser la fonction getListeProjet définie dans la question 3.

 Si l’employé n’a aucun projet associé, afficher : ‘Cet employé n’a pas de projets associés pour
le moment »

4|5
……………………………………………………………………………………………………
……………………………………………………………………………………………………
……………………………………………………………………………………………………
……………………………………………………………………………………………………
……………………………………………………………………………………………………
……………………………………………………………………………………………………
……………………………………………………………………………………………………
……………………………………………………………………………………………………
……………………………………………………………………………………………………
……………………………………………………………………………………………………
……………………………………………………………………………………………………
……………………………………………………………………………………………………
……………………………………………………………………………………………………
……………………………………………………………………………………………………
……………………………………………………………………………………………………
……………………………………………………………………………………………………
……………………………………………………………………………………………………
……………………………………………………………………………………………………
……………………………………………………………………………………………………
……………………………………………………………………………………………………
……………………………………………………………………………………………………
……………………………………………………………………………………………………
……………………………………………………………………………………………………
……………………………………………………………………………………………………
……………………………………………………………………………………………………
……………………………………………………………………………………………………
……………………………………………………………………………………………………
……………………………………………………………………………………………………
……………………………………………………………………………………………………
……………………………………………………………………………………………………
……………………………………………………………………………………………………
……………………………………………………………………………………………………
……………………………………………………………………………………………………
……………………………………………………………………………………………………
……………………………………………………………………………………………………
……………………………………………………………………………………………………
……………………………………………………………………………………………………
……………………………………………………………………………………………………
……………………………………………………………………………………………………
……………………………………………………………………………………………………
……………………………………………………………………………………………………
……………………………………………………………………………………………………
……………………………………………………………………………………………………
……………………………………………………………………………………………………
……………………………………………………………………………………………………
……………………………………………………………………………………………………
……………………………………………………………………………………………………
……………………………………………………………………………………………………

5|5

Vous aimerez peut-être aussi