好的,我的情况是这样的:
我有一个名为 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')
最佳答案
你需要这样的东西:
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
)来实现这一点。
关于sql-server - 如何更新触发器中插入的字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16511396/