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 46 47 48 49
| CREATE TRIGGER TR_A_IU_annonces
AS
BEGIN
SET NOCOUNT ON
-- Ajoute seulement les recherches qui n'existent pas déjà dans la table recherches
-- le LEFT JOIN + r.id_recherche IS NULL permet de faire cela
INSERT INTO site.dbo.recherche
(
id_annonce
, code_modele
, code_marque
, libelle_marque
, libelle_modele
, annee
, prixe
, detail
)
SELECT i.id_annonce
, i.code_modele
, ma.code_marque
, ma.libelle_marque
, mo.libelle_modele
, i.annee
, i.prixe
, i.detail
FROM inserted AS i
INNER JOIN dbo.modeles AS mo
ON i.code_modele = mo.code_modele
INNER JOIN dbo.marques AS ma
ON ma.code_marque = mo.code_marque
LEFT JOIN site.dbo.recherche AS r
ON r.id_recherche = i.id_recherche
WHERE i.valide = 2
AND r.id_recherche IS NULL
-- Mise à jour des recherches qui existent déjà
UPDATE site.dbo.recherche
SET , code_marque = ...
, code_modele = ...
, libelle_marque = ...
, libelle_modele = ...
, prix = ...
, annee = ...
, detail = ...
FROM site.dbo.recherche AS r
INNER JOIN inserted AS i
ON r.id_recherche = i.id_recherche
END |
Partager