这种情况的SQL触发器是什么?

时间:2011-09-22 19:03:16

标签: sql sql-server sql-server-2008

我有三个表,要求,selloffer和tradeleads。 Tradelead是一个表,它包含前两个表的公共实体。

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

这里在tradelead中我使用typeid来区分买入和卖出。它的买入然后1将与其他数据2一起插入。

那么上述情景会触发什么?

方案: 无论何时将行插入需求或销售提供,行也将使用上面提到的列创建到tradeleads表中。可以说当在需求中创建行时,它也会在TradeLead中创建,类型为id = 1并且如果它是在selloffers中创建的,那么tradelead将填充type = 2并保持相同。 我希望,我现在很清楚

1 个答案:

答案 0 :(得分: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