J'ai écris un trigger dans ma base SQL Server 2000 dont voici la syntaxe:

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
 
CREATE TRIGGER insert_stock
ON fMOUVEMENTS INSTEAD OF INSERT
AS
 
declare @id_article int
declare @id_vehicule int
declare @qte int
declare @stock_init int
declare @stock_final int
declare @sens varchar(6)
declare @date datetime
declare @obs varchar(255)
 
	BEGIN
		SELECT @id_article = ID_ARTICLE,  @sens = TYPE_MOUVEMENT, @qte = QTE_MOUVEMENT, @date = DATE_MOUVEMENT,  @id_vehicule = ID_VEHICULE, @obs = OBS_MOUVEMENT FROM inserted
 
		SET @stock_init = (SELECT QTE_STOCK From fARTICLES WHERE ID_ARTICLE = @id_article)
 
 
		IF @sens = 'Sortie'
			BEGIN
				IF  @stock_init < @qte 
					BEGIN
						RAISERROR ('La quantité que vous souhaitez déstockée est indisponible',0,1)
						ROLLBACK TRANSACTION
					END
				ELSE
					BEGIN
						SET @stock_final = @stock_init - @qte
						INSERT INTO fMOUVEMENTS (ID_ARTICLE, DATE_MOUVEMENT, QTE_MOUVEMENT, TYPE_MOUVEMENT, ID_VEHICULE, OBS_MOUVEMENT, STOCK_INITIAL, STOCK_FINAL)
						VALUES (@id_article, @date, @qte, @sens, @id_vehicule, @obs, @stock_init, @stock_final)
						COMMIT TRANSACTION
					END
 
			END
		ELSE
			BEGIN
				SET @stock_final = @stock_init + @qte
				INSERT INTO fMOUVEMENTS (ID_ARTICLE, DATE_MOUVEMENT, QTE_MOUVEMENT, TYPE_MOUVEMENT, OBS_MOUVEMENT, STOCK_INITIAL, STOCK_FINAL)
				VALUES (@id_article, @date, @qte, @sens, @obs, @stock_init, @stock_final)
				COMMIT TRANSACTION
			END
 
	END
J'ai dans ma base 2 tables (fARTICLES et fMOUVEMENTS) qui ont une dépendance. Visiblement la syntaxe du déclencheur est correcte mais à l'exécution j'ai le message de confirmation de mon insertion dans la table fMOUVEMENTS mais quand j'affiche les données de ma table, aucune insertion n'est faite.
Que puis-je faire pour retrouver la cause?