У меня проблемы с обновлением некоторых строк в SQL Server (2005 и 2008).
Часто, когда я пытаюсь обновить одну строку при наличии текущего запроса (select * from thistable
), я запускаю команду обновленияи произойдет сбой из-за проблемы тайм-аута / блокировки.
Он появляется только в таблицах с nvarchar(max)/text
столбцами!
Даже если я пытаюсь SELECT * FROM thistable WITH(ROWLOCK)
, я сталкиваюсь с той же проблемой.
Итак, мой основной вопрос:
Могу ли я мотивировать SQL Server НЕ блокировать больше, чем фактическая строка?
Редактировать: я первыйпосле этого запускаю SELECT, я пытаюсь ОБНОВИТЬ ...
Существует большое объяснение блокировки в SQL-Server на простом разговоре