2
假設我有一個表格,並且我設置了一個after update
觸發器,它更新了相同更改的行中的列。SQL服務器和觸發器反映變化順序?
是否允許觸發器在更新後立即執行,但在某人嘗試讀取值之前執行?
實施例:
存在用於更新的觸發,這臺"IsNameSet"
到1
(當name
被修改)
update myTable set name="a" where id={...}
然後立刻
select IsNameSet from myTable where id=...{modified row id}
是否保證我會方式見1
?
所以你說要設置'IsNameSet'列作爲一個計算列?但它不取決於隔離級別? –
@RoyiNamir - 正是以效率爲理由。觸發器需要額外的開銷,因爲它們需要填充'INSERTED'和'DELETED'表。但是如果你需要參考列的「之前」值,那麼計算列將不起作用。 –
你是什麼意思,「只是效率的理由」(對不起,不知道它是什麼意思)。 「它是否也取決於隔離級別」? –