如何在触发后引用插入的 table 列
How to reference column on inserted table in after trigger
当输入列中的特定代码时,我有一个要在触发器上处理的更新。当我引用插入的 table 时,它在我键入插入时显示在智能下拉列表中时出现错误:
The multipart identifier "inserted.contact" could not be bound.
知道如何为触发器引用插入的 table 中的列吗?另外,为什么使用插入的 table 比使用现有的 table 更好?
使用 PCUnitTest
去
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'
;
你把 inserted
和任何 table:
一样
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
使用了哪些列。 ??
用于您的列名。
当输入列中的特定代码时,我有一个要在触发器上处理的更新。当我引用插入的 table 时,它在我键入插入时显示在智能下拉列表中时出现错误:
The multipart identifier "inserted.contact" could not be bound.
知道如何为触发器引用插入的 table 中的列吗?另外,为什么使用插入的 table 比使用现有的 table 更好?
使用 PCUnitTest 去
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'
;
你把 inserted
和任何 table:
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
使用了哪些列。 ??
用于您的列名。