【问题标题】:How to update inserted field in trigger如何更新触发器中的插入字段
【发布时间】:2013-05-12 19:50:40
【问题描述】:

好吧,我的情况是这样的:

我有一个名为 Company 的表,我想在此表中添加的每条记录之后添加一个触发器,以检查列名称是否不以“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')  

【问题讨论】:

  • 您使用的是哪个数据库服务器?
  • 我使用的是 SQL Server 2012

标签: sql-server triggers sql-server-2012


【解决方案1】:

你需要这样的东西:

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 中的行加入到您的基础表中(以便仅更新那些新插入的行),最好的方法是使用您的主键(类似于@ 987654323@) 来实现这一点。

【讨论】:

    猜你喜欢
    • 2021-07-27
    • 2010-12-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-07-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多