How to update inserted field in trigger

五迷三道 提交于 2020-01-02 08:21:10

问题


Ok, my situation is like this:

I have a table named Company, and I want to add a trigger after every record I add in this table that checks if the column Name does not end with 'LTD' then add 'LTD' at the end of the Name.

I get an error saying Incorrect syntax near ')'. How would I do this?

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:


You would need something like this:

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'

You need to join the rows in Inserted to your underlying table (in order to update just those rows that have been newly inserted), and the best way to do this is to use your primary key (something like a CompanyID) to achieve this.



来源:https://stackoverflow.com/questions/16511396/how-to-update-inserted-field-in-trigger

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!