Problème avec un trigger...
Voilà mon problème : J'ai le trigger suivant (qui ne fait pas ce que je veux :aie:)
Code:
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 8-))
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...