Предположим, у меня есть таблица, и я установил триггер 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». Но если вам нужно сослаться на значение «до» столбца, то вычисленный столбец не будет работать. –
Что вы подразумеваете под «Просто по причине эффективности» (извините, не знаете, что это значит). это ответ на вопрос: «Разве это не зависит от уровня изоляции»? –