Вы можете попытаться применить подсказку к запросу, который читает строки: с (updlock, holdlock). Попробуйте создать кластерный индекс, который будет использоваться на этапе выбора, если у вас его нет. Если возможно, попытайтесь сузить количество строк, обрабатываемых в транзакциях.
Можно ли сначала обновить строки в таблице, а затем заполнить другие таблицы? В случае ошибки вы можете откатить транзакцию.
Я не рекомендую использовать подсказку NOLOCK, особенно когда вы обновляете те же данные.