3

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

我有一个名为 Company 的表,我想在此表中添加的每条记录之后添加一个触发器,以检查列名称是否不以“LTD”结尾,然后在名称末尾添加“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')  
4

1 回答 1

13

你需要这样的东西:

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到您的基础表中(以便仅更新那些新插入的行),最好的方法是使用您的主键(类似于 a CompanyID)来实现这一点。

于 2013-05-12T20:05:41.760 回答