Search for notes by fellow students, in your own course and all over the country.
Browse our notes for titles which look like what you need, you can preview any of the notes via a sample of the contents. After you're happy these are the notes you're after simply pop them into your shopping cart.
Document Preview
Extracts from the notes are below, to see the PDF you'll receive please use the links above
LYCEE TECHNIQUE IBN SINA
KENITRA
2BTS DSI
SGBDR : Contrôle 2
Durée 2H
03 /04/2015
Enseignant : H
...
1
...
La syntaxe de création d’une procédure stockée est la suivante:
CREATE PROC[EDURE] [#[#]]nom[;numero][(param1[,
...
Que permet le caractère « # » devant le nom de la procédure? (1point)
(Exemple : Create proc #nomProcedure …
...
Peut-on créer deux procédures portant le même nom ? Si oui, comment ? (1point)
on
………………………………………………………………………………………………………………………………………………
...
Que signifient les deux options suivantes: (1point)
WITH RECOMPILE ……………………………………………………………………………………
……………………………………………………………………………………………………………
...
3
...
d
...
• Sinon, la procédure supprime la séance
...
where ID=……………………
……………………))
begin
--afficher l'erreur
raiserror('la séance n’existe pas!',16,1);
return;
end
--voir si la séance a été déjà archivée
ce
if(exists(select * from SEANCE
where ID=…………………………………… and ………………………………… is not null ))
begin
--afficher l'erreur
…………………………………………………………………………………………………………………………………
return;
end
--• voir si des absences sont marquées dans cette séance,
cette
if(exists(select * from ……………
……………………… where ……………………………=@ids))
……………………………
begin
-- afficher le message
print 'la séance possède des absences marquées,elle
marquées,elle
sera archivée!';
--marquer l’archivage de la séance
update ………………………… set SUPPRIMER_LE=
SUPPRIMER_LE=…………………………………
…………………………
where …………………………………………………………………
……………………………………;
return;
end
--• Sinon, supprimer la séance
delete from ……………………………………………… where …………………………
...
On veut créer une autre version de la procédure utilisateur « sp_supp_seance », cette
version force la suppression de la séance et ses absences
...
Lors de l’ajout ou de la modification d’une séance, elle ne doit pas se chevaucher avec
d’autres séances actives (SUPPRIMER_LE est vide)
...
On suppose que nous avons créé une fonction « fn_SeancesChevaucheesAvec» qui permet
de retourner les séances chevauchées avec la séance dont les propriétés sont passées en
paramètre :
CREATE FUNCTION
fn_SeancesChevaucheesAvec(
@classe int,
@matiere int,
@jour int,
@de time,
@a time
)
RETURNS TABLE
AS
RETURN
(
(
-- seances de la même classe
SELECT * FROM
fn_seancesMemeClasse(@classe)
UNION -- ou
-- seances du même professeur
SELECT * FROM
fn_seancesMemeProf(@matiere)
)
INTERSECT -- et
-- seances du même jour
SELECT * FROM
fn_seancesMemeJour(@jour)
INTERSECT -- et
-- seances dont ]DE,A[∩]@de,@a[≠Ø
SELECT * FROM
fn_SeancesInInterval(@de,@a)
)
a
...
5 points)
CREATE FUNCTION
fn_SeancesInInterval(
@de time,
@a time
)
RETURNS TABLE AS RETURN
(
SELECT *
from seance
where …………………… and …………………
and …………………………………… is null
)
)
Retourne les séances actives dont le jour
Retourne les séances actives qui se chevauchent
est @jour
avec l’intervalle]@de,@a[
CREATE FUNCTION
CREATE FUNCTION
fn_matieresMemeProf(
fn_SeancesMemeProf(
@matiere int
@matiere int
)
)
RETURNS TABLE AS RETURN
RETURNS TABLE AS RETURN
(
(
SELECT *
select *
from seance
from matiere where
where matiere in
professeur = (
(
select …………………………………………
from matiere
select ………………… from
fn_matieresMemeProf(……………………)
where id=………………………………………
)
)
and supprimer_le is null )
)
Retourne les séances du professeur dont
Retourne les matières enseignées par le
la matière est @matiere
professeur de @matiere
b
...
5 points)
CREATE TRIGGER tr_ajoutSeance ON ………………………… FOR ………………………… AS
BEGIN
-- si nombre de lignes inserés > 1
-- alors annuler la transaction en cours
...
Donne le code de la fonction « fn_nbAbsences » qui retourne le nombre d’absences et le
total d’heures absentées groupés par étudiant
...
(2
...
…
…
...
Compléter le code suivant du déclencheur « tr_ajoutAbsence » qui se déclenche lors de
l’insertion ou de la modification d’une absence
...
5 points)
Lors de la modification du champ NB_HEURE, le déclencheur corrige le nombre d’heure s’il
est nul ou supérieur à la plage horaire de la séance concernée
...
CREATE TRIGGER tr_ajoutAbsence ON …………………………… FOR ……………………………………
AS
BEGIN
-- si le champ NB_HEURE a été changé
IF(…………………………………………………)
BEGIN
-- récuperer les absences insérées dont
-- NB_HEURE et vide, null ou supérieur
-- à la plage horaire de la séance concernée
-- dans une table temporaire locale T
SELECT SEANCE,…………………,…………,…………………,
……………………………………………………… AS PLAGE_HORAIRE
INTO #T
FROM INSERTED I JOIN SEANCE S ON
I
...
DE,S
...
SEANCE AND
…………………………=T
...
LE
WHEN MATCHED AND T
...
NB_HEURE=……………………………………;
END
END
NB : la structure de la table temporaire #T :
SEANCE ETUDIANT LE NB_HEURE PLAGE_HOURAIRE
…
Avec PLAGE_HOURAIRE est la différence, en nombre d’heures, entre les champs « DE » et
« A » de la table SEANCE (utilisé DATEDIFF)
Syntaxe de MERGE :
MERGE tableCible
USING TableSource
ON
[ WHEN MATCHED [ AND
THEN
[ WHEN [TARGET] NOT MATCHED [ AND < conditionSélection > ]
THEN
[ WHEN SOURCE NOT MATCHED [ AND < conditionSélection > ]
THEN