2013-05-12 124 views
3

好更新增补,我的情况是这样的:如何触发

我有一个名为公司的表,我希望每次我在这个表中,如果列名称,检查添加记录后,添加触发器并不以'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') 
+0

您正在使用哪个数据库服务器? – 2013-05-12 19:52:16

+0

我正在使用SQL Server 2012 – Legjendat 2013-05-12 19:52:58

回答

12

您需要像这样:

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)来实现此目的。