我需要根据tableB中的插入更新我的tableA。我创建了一个触发器,当一行被插入tableB时触发,并简单地将它复制到tableA(这正是我想要的)。但是,当我更新tableB中的现有记录时,问题就出现了,tableA中的行已经存在,并且具有相同的主键。用触发器更新多个表 - SQL Server
要处理它,我试图删除tableA中的主键与更新的行相匹配的现有行,然后插入“插入”表中的行。但是,tsql根本不让我从触发器中删除我,并给出了一个错误,指出“多部分标识符”INSERTED.Id“无法绑定”。
这里就是我试图完成代码明智:
delete from dbo.CurrentItems where dbo.CurrentItems.CurrentItemId = INSERTED.Id
INSERT INTO CurrentItems
SELECT * FROM INSERTED
WHERE IsActive = 1
任何想法的家伙?
非常感谢................ – Xience 2009-12-03 17:44:06
独立触发 - 一个用于插入,一个更新(和怎么样删除?) - 可能会表现更好。 – 2009-12-03 17:51:50
@Ifanfan:不客气。 @Phillip Kelley,我不能不同意你的意见,但现在这就是海报的要求。他想知道为什么他的DELETE声明不起作用。 – 2009-12-03 18:50:33