2011-09-22 2 views
0

J'ai trois tables, exigence, selloffer et tradeleads. Tradelead est une table qui contient les entités communes des deux tables précédentes.Quel sera le déclencheur SQL de ce scénario?

Schema of requirement: 
    reqId, name, description, posteddate, companyid, cat1,cat2,cat3 .... 

Schema of selloffer: 
    sellid, name, description, posteddate, companyid, cat1,cat2,cat3 .... 

Schema of tradelead: 
    id, name, description, posteddate, companyid, cat1,cat2,cat3, typeid 

ici dans le tradelead j'utilise typeid pour distinguer btween acheter et vendre. C'est son achat puis 1 sera inséré avec les données d'autre 2.

Alors, quel sera mon déclencheur pour le scénario ci-dessus?

Scénario: chaque fois qu'une ligne est soit insérée dans les exigences ou selloffers, une ligne auront également créé dans les tables de tradeleads, en utilisant la columns.Mean mentionnée ci-dessus pour dire quand une ligne est créée en exigence, il se a également créé dans TradeLead avec type id = 1 et s'il est en train de créer dans selloffers, le tradelead sera peuplé avec type = 2 et reposera même. je l'espère, je suis clair maintenant

+0

Ce qui est spécifiquement censé être inséré et de ce que les tables dans lesquelles les tables? C'est un simple déclencheur 'INSERT', mais cela dépend des critères et de l'endroit où vous insérez. – Wil

+0

La colonne id dans tradelead est-elle une colonne IDENTITY ou est-ce le reqId ou sellid de la ligne source? –

+0

La première colonne avec l'ID comme suffixe est la clé peimary –

Répondre

2
CREATE TRIGGER dbo.requirment_insert 
ON dbo.requirment 
FOR INSERT 
AS 
BEGIN 
    INSERT dbo.tradelead(id, name, ..., typeid) 
     SELECT reqId, name, ..., 1 
     FROM inserted; 
END 
GO 

CREATE TRIGGER dbo.selloffer_insert 
ON dbo.selloffer 
FOR INSERT 
AS 
BEGIN 
    INSERT dbo.tradelead(id, name, ..., typeid) 
     SELECT sellid, name, ..., 2 
     FROM inserted; 
END 
GO 
Questions connexes