Bonjour
J'ai un problème lors de l'exécution d'un trigger sur SQL Server 2005 Express Edition.
Le voici:

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
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
 
create trigger tr_suppr_rencontrer_update on RENCONTRER
after update
as
    declare @nbProjet as smallint
 
    if update(numProjet)
    begin    
        declare @numProjet as int
 
        select @numProjet=numProjet
        from inserted
 
        select @nbProjet=count(numProjet)
        from RENCONTRER
        where numProjet=@numProjet
 
        if (@nbProjet=0)
        begin
            delete from PROJET
            where numProjet=@numProjet
        end;
    end;
 
    if update(numCommercial)
    begin
        declare @estActif as char(1)
        declare @numCommercial as int
 
        select @numCommercial=numCommercial
        from inserted
 
        select @nbProjet=count(numProjet)
        from RENCONTRER
        where numCommercial=@numCommercial
 
        select @estActif=estActif
        from COMMERCIAL
        where numCommercial=@numCommercial
 
        if (@nbProjet=0)and(@estActif='0')
        begin
            delete from COMMERCIAL
            where numCommercial=@numCommercial
        end;
    end;
 
    if update(numInterlocuteur)
    begin    
        declare @numInterlocuteur as int
        declare @nbInterlocuteur as smallint
 
        select @numInterlocuteur=numInterlocuteur
        from inserted
 
        select @nbInterlocuteur=count(numInterlocuteur)
        from RENCONTRER
        where numInterlocuteur=@numInterlocuteur
 
        if (@nbInterlocuteur=0)
        begin
            delete from INTERLOCUTEUR
            where numInterlocuteur=@numInterlocuteur
        end;
    end;
Ce trigger devrait normalement permettre, suite à la mise à jour du champ numProjet, de supprimer l'ancien projet si ce dernier n'est plus utilisé dans la base (clé étrangère) ainsi que faire la même chose pour la table interlocuteur et commercial. Or, même si je modifie le numéro de projet (ou un autre) sur ma table RENCONTRER et que l'ancien numéro n'est plus utilisé, la suppression ne s'effectue pas. Ce qui est le plus bizarre, c'est que j'ai presque le même trigger after delete sur cette table et que celui-ci fonctionne très bien. Je n'y comprend rien!

Merci d'avance si vous arrivez à résoudre mon problème!