问题
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