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 |
Partager