代码之家  ›  专栏  ›  技术社区  ›  Ash Machine

SQL Server中的更新列触发器-无法绑定错误的多部分标识符

  •  0
  • Ash Machine  · 技术社区  · 14 年前

    我试图找到正确的语法来创建一个简单的更新触发器。

    我总是收到错误信息

    这是触发器,AgencyDivision的[FullName]列应该包含其父级(代理)的名称以及[Agency].Name。

    CREATE TRIGGER [dbo].[trUpdateAgencyDivisionFullName] 
    ON [dbo].[AgencyDivision] FOR UPDATE, INSERT
    AS
    
    BEGIN
        UPDATE AD
        SET AD.FullName = A.Name + ' , ' + AD.DivisionName
        FROM AgencyDivision as AD, inserted AS i
        JOIN Agency AS A
        ON AD.AgencyId = A.Id
        WHERE i.Id = AD.Id
    END
    

    我能做些语法上的改变来解决这个问题吗?这个连接结构可以在触发器中工作吗?谢谢。

    1 回复  |  直到 14 年前
        1
  •  1
  •   Phil Sandler    14 年前

    这听起来太明显了,但是您能再检查一下AgencyDivision表上是否有AgencyId吗?

    另外,从纯语法的角度来看,我将把它改为:

    UPDATE AD 
    SET AD.FullName = A.Name + ' , ' + AD.DivisionName 
    FROM AgencyDivision as AD
    INNER JOIN inserted AS i ON i.Id = AD.Id 
    INNER JOIN Agency AS A ON AD.AgencyId = A.Id