Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to update inserted field in trigger

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')  
like image 336
ArbenM Avatar asked Apr 21 '26 14:04

ArbenM


1 Answers

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.

like image 126
marc_s Avatar answered Apr 24 '26 03:04

marc_s