powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Организация блокировок
3 сообщений из 3, страница 1 из 1
Организация блокировок
    #32074964
Bobby
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Люди, помогите неграмотному. Как организовать бокировку только одной записи, а не всей таблицы?
Заранее благодарен
...
Рейтинг: 0 / 0
Организация блокировок
    #32074975
FixeR
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добавить к запросу hint, например:
Код: plaintext
1.
insert MyTable with( rowlock ) values(  1 ,  2 ,  3  )

или
Код: plaintext
1.
select * from MyTable1 with ( rowlock ), MyTable2 with( rowlock )
...
Рейтинг: 0 / 0
Организация блокировок
    #32075654
AlexQC
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Аналогичный вопрос. имею ХП

<code>
CREATE PROCEDURE tovlock AS

update base_tovlock with (rowlock)
set spid=@@spid from base_tovlock with (rowlock)
where tov_id in (select tov_id from #tovlock)

insert into base_tovlock with(rowlock)
(tov_id,spid) select tov_id,@@spid
from #tovlock where #tovlock.tov_id not in (select tov_id from base_tovlock)

delete from #tovlock
</code>

где
base_tovlock (tov_id char(9) NOT NULL, spid int NOT NULL)
#tovlock (tov_id char(9) NOT NULL)


Предполагалось, что процедура заблокирует тех tov_id, которые есть в #tovlock, при этом подождет если они уже заблокированы, и не ждет если их не блокируют. Однако в реальности процедура застревает когда заблокированы ЛЮБЫЕ tov_id, а не только те что в списке. Т.е. впечатление, что невзирая на rowlock блокируется вся таблица. Кто что подскажет?
...
Рейтинг: 0 / 0
3 сообщений из 3, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Организация блокировок
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]