我需要根據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