Я использую хранимую процедуру, которая возвращает 5-6 таблиц, и эта процедура может использоваться одновременно многими пользователями (5-10 пользователей) одновременно.Блокировка таблицы в хранимой процедуре
Процедура имеет только операторы «Выбрать».
Так что я просто хотел подтвердить, что всякая блокировка применяется для таблиц хранимой процедуры всякий раз, когда процедура вызовет или не будет блокировки.
Я использую MS SQL Server 2012 и Visual Studio 2013.
yes Замок применяется на столе и его самой базовой концепции, которую вы должны знать. если кто-то вставляет или обновляет таблицу записей, будет заблокирован и разблокирован. лучший способ - использовать инструкцию select следующим образом: select * from table with (nolock) .... после того, как данные вставлены или обновлен, блокировка будет удалена автоматически. –
@ Dirty, в моей процедуре я использую только выражения «Выбрать». Итак, вы имеете в виду, что мне нужно изменить свой запрос следующим образом: Выберите * из таблицы с (nolock) – sunil
Не используйте «с (nolock) «Это позволит вашей процедуре читать строки, которые в настоящее время обновляются или даже удаляются с помощью текущей транзакции, прежде чем они будут совершены (грязные чтения). –