Как применить блокировку на уровне таблицы в SQL-сервере

Я использую SQL Server 2008 R2 Edition и хочу применить блокировку на уровне таблицы при выборе данных из таблицы.

Поскольку применение NO_LOCK может привести к проблеме DIRTY READ, так что вы хотите применить NO_LOCK к таблицам, которые содержат только данные домена, а не данные транзакции. т.е. данные, которые реже меняются.

Пожалуйста, предложите любой способ применить LOCK к таблицам доменов.

1 ответ

Вам не нужно блокировать таблицу во время чтения (SELECT), так как чтение всегда получает общую блокировку таблицы или строки. WITH(NOLOCK) табличная подсказка также позволяет читать незафиксированные данные; это строки, которые еще не вставлены и переданы другим сеансом. Вы можете рассмотреть, настройка TRANSACTION ISOLATION LEVEL в READ COMMITED чтобы убедиться, что незафиксированные данные никогда не будут красными.

Другие вопросы по тегам