Bonjour à tous,

Lors de l'ajout, suppression ou mise à jour de la table ob_dimPRODUCTS, je souhaite supprimer un certain nombre de ligne de cette même table et en ajouter d'autres. Ci-dessous le code du trigger :

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
CREATE TRIGGER testtrigger  ON [dbo].[ob_dimPRODUCTS] 
AFTER DELETE,INSERT,UPDATE
AS
BEGIN
	/*supprime les lignes ayant pour parent TYP2 ou TYP3 
	c'est à dire les lignes donnant le nom des GroupeCustomer ou des Constructeurs*/
	DELETE FROM [dbo].[ob_dimPRODUCTS] 
	WHERE p_PRODUCT= 'TYPE2' or p_PRODUCT= 'TYPE3' 
 
	/*supprime les lignes ayant un code qui commene par TYP2 ou TYP3
	c'est à dire les produits classés par GroupeCustomer ou par Constructeur*/
	DELETE FROM [dbo].[ob_dimPRODUCTS] 
	WHERE k_PRODUCT like 'TYP2%' or k_PRODUCT like 'TYP3%' 
 
	/*insert les GroupeCustomer*/
	INSERT INTO [dbo].[ob_dimPRODUCTS]   (k_PRODUCT, n_PRODUCT, p_PRODUCT) 
	SELECT DISTINCT p1_GroupeCustomer, p1_GroupeCustomer, 'TYPE2' 
	FROM ob_dimPRODUCTS
	WHERE (p1_GroupeCustomer <> '')
 
	/*insert les Constructeurs*/
	INSERT INTO [dbo].[ob_dimPRODUCTS]   (k_PRODUCT, n_PRODUCT, p_PRODUCT) 
	SELECT DISTINCT p1_Constructeur, p1_Constructeur, 'TYPE3' 
	FROM ob_dimPRODUCTS
	WHERE (p1_Constructeur <> '')
 
	/*insert les produits enfants des GroupeCustomer*/
	INSERT INTO [dbo].[ob_dimPRODUCTS]   (k_PRODUCT, n_PRODUCT, p_PRODUCT, c_PRODUCT) 
	SELECT 'TYP2'+k_PRODUCT, k_PRODUCT, p1_GroupeCustomer, '[PRODUCTS].&['+k_PRODUCT+']'
	FROM ob_dimPRODUCTS
	WHERE  p1_GroupeCustomer<>''
 
	/*insert les produits enfants des Constructeurs*/
	INSERT INTO [dbo].[ob_dimPRODUCTS]   (k_PRODUCT, n_PRODUCT, p_PRODUCT, c_PRODUCT) 
	SELECT 'TYP2'+k_PRODUCT, k_PRODUCT, p1_Constructeur, '[PRODUCTS].&['+k_PRODUCT+']'
	FROM ob_dimPRODUCTS
	WHERE  p1_Constructeur<>''
 
END
Lorsque j'ajoute, je supprime ou je modifie une ligne de ma table, seule la première instruction (le premier delete) est lancé, les autres non !
Avez-vous une idée de l'erreur que je fais ???

Merci d'avance