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'表。但是如果你需要参考列的“之前”值,那么计算列将不起作用。 –
你是什么意思,“只是效率的理由”(对不起,不知道它是什么意思)。 “它是否也取决于隔离级别”? –