如何在触发器中更新插入的字段

时间:2013-05-12 19:50:40

标签: sql-server triggers sql-server-2012

好的,我的情况是这样的:

我有一个名为Company的表,我希望在我在此表中添加的每个记录之后添加一个触发器,检查列Name是否以'LTD'结尾,然后在Name的末尾添加'LTD'。

我收到错误,说'''附近的语法不正确。我该怎么做?

Create Trigger [Add_LTD] on Company
After Insert As
Update Company
Set Name = Name + ' LTD'
If Exists (Select Name 
From Inserted
Where Name Not Like '% LTD')  

1 个答案:

答案 0 :(得分:12)

你需要这样的东西:

CREATE TRIGGER [Add_LTD] on dbo.Company
AFTER INSERT AS
   UPDATE dbo.Company
   SET Name = Name + ' LTD'
   FROM Inserted i
   WHERE dbo.Company.CompanyID = i.CompanyID
     AND Name NOT LIKE '% LTD'

您需要将Inserted中的行连接到基础表(为了更新那些新插入的行),最好的方法是使用主键(类似于一个CompanyID)来实现这一目标。