SQL更新插入带触发器的行
我试图用表触发器更新SQL中刚刚插入的行。 以下是触发器。 看来这只会更新已经插入的行,而不是刚插入的行。 我究竟做错了什么?
ALTER TRIGGER [dbo].[TRG_DIM_Employee]
ON [dbo].[DIM_Employee]
AFTER INSERT
AS
BEGIN
SET NOCOUNT ON
UPDATE DIM_Employee
SET ParentEmployeeKey = i.EmployeeKey
FROM INSERTED i
WHERE DIM_Employee.EmployeeId = i.EmployeeId
END
您的更新声明不完全正确。 您需要使用插入的表格行来加入表格。
ClientID int,
ALTER TRIGGER [dbo].[TRG_DIM_Employee]
ON [dbo].[DIM_Employee]
AFTER INSERT
AS
BEGIN
SET NOCOUNT ON
UPDATE emp
SET emp.ParentEmployeeKey = i.EmployeeKey
FROM DIM_Employee emp
JOIN INSERTED i on emp.EmployeeId = i.EmployeeId
END
更多加入更新的例子在这里加入。
据我所知,这是旧的连接语法,但在功能上是等同的。 我建立了一个快速测试,但不能重现这个问题,似乎按预期工作。
仅供参考,您应该转向使用正确的JOIN语法,旧的ANSI-89标准已在SQL 2012中以某些形式停用。
链接地址: http://www.djcxy.com/p/94677.html