1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44
|
/*A l'ajout d'un chauffeur; dans un transporteur, verifier que le groupe n'est pas plein (nbprsnmax) */
CREATE TRIGGER verif_gp
on CHAUFFEUR
for insert
as
DECLARE
@nbprsn char(5),
@nb_voulue numeric (5),
@numtp char(5)
BEGIN
/* on compte le nombre de fois que le transporteur est choisi dans la table pour chaque chauffeur */
select @nbprsn=t.NBPRSNMAX, @numtp=i.NUMT from inserted i, TRANSPORTEUR t where i.NUMT=t.NUMT
select @nb_voulue=count(NUMT) from CHAUFFEUR where NUMT=@numtp
/* si le transporteur n'a pas atteind son quota max de chauffeur*/
if (@nb_voulue<@nbprsn)
BEGIN
print 'C''est bon'
END
else
BEGIN
/*C'est ici que je veux forcer un affichage pour le signaler coté client, j'ai essayé en mettant un commit, cela ne fonctionne pas */
if (@nb_voulue=@nbprsn)
BEGIN
Commit transaction
raiserror ('Le nombre de personnes maximum pour ce transporteur est desormais atteind ',16,1);
END
else
BEGIN
if (@nb_voulue >@nbprsn)
BEGIN
raiserror (' Impossible d''ajouter ce chauffeur, le nombre de personnes maximum pour ce transporteur est atteind',16,1);
rollback transaction
END
END
END
END |
Partager