Ответ 1
Вы можете использовать подсказку ROWLOCK, но AFAIK SQL может решить ее эскалацию, если она работает на ресурсах
ROWLOCK Указывает, что блокировки строк когда блокировки страниц или таблиц обычно принимается. Когда указано в транзакции, действующие на SNAPSHOT уровень изоляции, блокировки строк не если ROWLOCK не сочетается с другие табличные подсказки, которые требуют блокировок, таких как UPDLOCK и HOLDLOCK.
и
Блокировать подсказки ROWLOCK, UPDLOCK и XLOCK которые могут занять блокировки на уровне строк блокировки на индексных ключах, а не на фактические строки данных. Например, если таблица имеет некластеризованный индекс, а Вызов SELECT с использованием подсказки блокировки обрабатываемый индексом покрытия, блокировка приобретенных на индексном ключе в охватывающий индекс, а не данные строка в базовой таблице.
Существует также самая глубокая: Блокировка в блоке базы данных (в книгах онлайн)
Итак, вообще говоря,
UPDATE
Employees WITH (ROWLOCK)
SET Name='Mr Bean'
WHERE Age>93
Должно быть хорошо, но в зависимости от индексов и загрузки на сервере может закончиться эскалация до блокировки страницы.