2013-05-12 120 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)來實現此目的。