voila ce schéma

et voila la question:
Écrire un (des) déclencheur(s) qui empêche(nt) d'avoir dans la BD des personnes ayant écrit plus de 2 œuvres et étant traducteur d'un livre
la réponse sur la table ecrit_par :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
  create trigger pas2oeuvresTraducteur on ecrit_par
  after insert
  as
 
     declare @estTraducteur int
     declare @idPersonne int
 
  begin
 
     set nocount on;
     select @estTraducteur=0    
     select @idPersonne=ecrivain from inserted
 
     select @estTraducteur=count(trad),count(ecrivain) from ecrit_par
     join traducteur_ecrivain on @idPersonne=ecrivain
     join traduit_par on tradecr=trad
     where @idPersonne=trad
     group by trad
     having count(ecrivain) > 2    
 
     if(@estTraducteur > 0)
      ROLLBACK TRANSACTION
  end
j'aimerais bien que vous m'expliquiez brièvement ce que fais ce bout de code
+
ce que je comprends pas:
on a mis after insert faut pas accepter l'enregistrement , on devrait pas déclencher le trigger avant?
cette ligne : et là aussi y'a-t-il une erreur ?? :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
count(trad),count(ecrivain)
et c'est invalider la saisie ,mais transaction je comprends pas