Sql server 使用表触发器更新插入的行

Sql server 使用表触发器更新插入的行,sql-server,triggers,insert,Sql Server,Triggers,Insert,我不太明白如何使用表触发器更新最后插入的行 我试过这个: create TRIGGER [dbo].[t_checkAucEquFields]<br /> ON [dbo].[_aucEquUpdateLog] AFTER INSERT as update a set inserted.[Status] = coalesce(pes.id,'22') from [_aucEquUpdateLog] a left join v_pobEquStatus pes on pes.statu

我不太明白如何使用表触发器更新最后插入的行

我试过这个:

create TRIGGER [dbo].[t_checkAucEquFields]<br />
ON [dbo].[_aucEquUpdateLog]
AFTER INSERT
as
update a set inserted.[Status] = coalesce(pes.id,'22')
from [_aucEquUpdateLog] a
left join v_pobEquStatus pes on pes.statusDescr = inserted.[Status]

我可能有点不对劲,但我完全不知道如何以正确的方式执行此操作?

您需要加入插入的表,并更新实际的表,而不是插入的表

试试这个:

CREATE TRIGGER [dbo].[t_checkAucEquFields]
ON [dbo].[_aucEquUpdateLog]
AFTER INSERT
as
begin
UPDATE a 
SET 
  [Status] = coalesce(pes.id,'22')
FROM 
  [_aucEquUpdateLog] a
JOIN
  inserted i 
ON 
  i.[your primary key] = a.[your primary key]
LEFT JOIN
  v_pobEquStatus pes 
ON 
  pes.statusDescr = i.[Status]
end
CREATE TRIGGER [dbo].[t_checkAucEquFields]
ON [dbo].[_aucEquUpdateLog]
AFTER INSERT
as
begin
UPDATE a 
SET 
  [Status] = coalesce(pes.id,'22')
FROM 
  [_aucEquUpdateLog] a
JOIN
  inserted i 
ON 
  i.[your primary key] = a.[your primary key]
LEFT JOIN
  v_pobEquStatus pes 
ON 
  pes.statusDescr = i.[Status]
end