如何在触发后引用插入表上的列

时间:2017-03-12 02:17:14

标签: sql tsql database-trigger

当输入列中的特定代码时,我有一个更新来处理触发器。当我引用插入的表时,当我输入插入时在intellisence下拉列表中显示我得到错误:

  

多部分标识符" inserted.contact"无法受约束。

知道如何在插入表中引用触发器的列吗?另外,为什么使用插入的表比现有的表更好?

使用PCUnitTest GO

UPDATE P
SET
     P.First_Name = T.ForeName
    ,P.Middle_Name = T.Middle_Name
    ,P.Last_name = T.Surname
FROM GMUnitTest.dbo.Contact1 C
INNER JOIN PCUnitTest.dbo.People P
    ON P.People_ID = C.Key4
CROSS APPLY dbo.NameParser(inserted.Contact) T --"the multipart identifier "inserted.contact" could not be bound"
WHERE C.Key1 = '76'
;

1 个答案:

答案 0 :(得分:0)

你像任何一张桌子一样引入inserted

UPDATE P
    SET P.First_Name = T.ForeName,
        P.Middle_Name = T.Middle_Name,
        P.Last_name = T.Surname
FROM PCUnitTest.dbo.People P JOIN
     GMUnitTest.dbo.Contact1 C
     ON P.People_ID = C.Key4 JOIN
     inserted i
     ON i.?? = c.?? CROSS APPLY
     dbo.NameParser(i.Contact) T 
WHERE C.Key1 = '76';

唯一的问题是您用于JOIN的列。 ??适用于您的列名。