Voilà mon problème : J'ai le trigger suivant (qui ne fait pas ce que je veux )

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
CREATE TRIGGER Titre_Delete
ON Titres AFTER DELETE
AS
BEGIN
    DECLARE @ordremin INT;
   DECLARE @ordremax INT;
   DELETE FROM Titre_Profil WHERE idtitre IN (select idtitre from deleted);
   DELETE FROM Titre_Frequence WHERE idtitre IN (select idtitre from deleted);
   SELECT @ordremin=ordre+1
   FROM deleted;
   SELECT @ordremax=max(ordre)
   FROM Titres;
   WHILE @ordremin>=@ordremax
   BEGIN
      UPDATE Titres
      SET ordre=ordre-1
      WHERE ordre=@ordremin;
      SET @ordremin=@ordremin+1;
   END
END
Le but de ce trigger était de supprimer toutes les associations avec un titre lors de sa suppression (aucun problème sur cette partie )

Mais aussi de faire remonter tous les numéros d'ordre jusqu'à celui supprimé (et là ça beugue ^^) (Code en bleu)

genre j'ai la table:

ID:ordre
1:1
2:2
3:3
10:4
12:5

Et je veux supprimer le titre 2, je devrais avoir

ID:ordre
1:1
3:2
10:3
12:4

Et je me retrouve avec

ID:ordre
1:1
3:3
10:4
12:5

La loose :-/
Si quelqu'un pouvait donc m'aider...