0
這似乎是一個非常愚蠢的問題,但我無法在網上找到任何信息如何做到這一點。INSTEAD OF UPDATE觸發器正在執行標準更新
如果您正在設計一個將包裝Update操作的觸發器,那麼您如何實際執行該操作?我是否必須明確提及tbl_MyTable
中的每一列來執行更新?對於未來潛在的模式更改,這似乎對維護密集得多,我不希望在啓用遞歸時不必要地觸發Insert
或Delete
觸發器。
CREATE TRIGGER [dbo].[tr_MyUpdateTrigger]
ON [dbo].[tbl_MyTable]
INSTEAD OF UPDATE
AS
BEGIN
--Do the standard update operation on tbl_MyTable that this trigger is replacing
END
總之,你怎麼能完成的更新,而不訴諸刪除從刪除,並從插入插入,或直接在您的表中提及的每一列。這甚至有可能嗎?
如果有人更新主鍵,插入將無法加入,因此爲什麼我認爲你不得不根據刪除的psudo從你的真實表中刪除,並基於插入插入。但我並不特別想因爲遞歸而這樣做。 – Izzy 2015-03-03 10:15:16
好點!不過,我更多地將這看作是一個設計問題 - 圍繞主鍵進行更新還有很多其他問題。您可以使用[UPDATE()](https://msdn.microsoft.com/zh-CN/library/ms187326.aspx)函數來測試主鍵列是否已更新並拒絕更新。 – 2015-03-03 10:20:49
對啊,所以我可以將PK的更新視爲刪除+插入,這是有道理的。對於所有不涉及PK更新的內容,只需基於插入更新...是否仍然需要明確提及tbl_MyTable中的每一列? – Izzy 2015-03-03 10:30:55