我寫了一個觸發器,需要根據實際更新的行中的哪些列對錶執行一些不同的工作。我用TSql觸發器只需要觸發其值已更改的列
IF UPDATE(column-name)
這部分工作正常。然而,事實證明,代碼的其他部分通過設置每個值來更新行,而不管該值是否實際發生了更改,這會導致觸發器針對「已更新」但其值未實際發生更改的部分觸發在所有。
由於改變導致這種情況的代碼可能不是一種選擇,是否有一種更簡單的方法來防止這種情況,而不是必須在INSERTED和DELETED表之間進行比較(在這種情況下,IF UPDATE是無意義的)?