powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Блокировка строк
5 сообщений из 5, страница 1 из 1
Блокировка строк
    #32051041
dao
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Задача - надо заблокировать строку для апдейта -
Два пользователя могут изменить строрку - надо кто первый "прорвался" к строке того изменения и сохранить.сиквел 2000
После перерыва вернулся к работе к сиквелом и многое позабылось - помню надо копать в хитах... Но очь мало времени.Надо как всегда "вчера" :))
...
Рейтинг: 0 / 0
Блокировка строк
    #32051048
alex_v
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
select * from table with(rowlock,updlock) where...
...
Рейтинг: 0 / 0
Блокировка строк
    #32051055
Фотография Jimmy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ИМХО если нужно заблокировать строку для апдейта, то ничего не нужно предпринимать, а просто выдать команду UPDATE ...
При этом сервер сам определит, кто первый обратился и заблокирует строку, а второй UPDATE поставит в очередь до истечения таймаута. Однако, при таком подходе сработает и второй UPDATE (стоящий в очереди), если только не изменились поля, участвующие в WHERE.

ЗЫ Поправьте, если не прав.
...
Рейтинг: 0 / 0
Блокировка строк
    #32051089
Фотография Garya
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Классическое решение подобной задачи - использование вспомогательного поля типа Timestamp. Два юзера "видят" в рекордсете одну и ту же запись. Оба выдают update ... where TimestampField= - и то, чему он равен в своем рекордсете. У первого комада отрабатывает нормально, при этом значение поля Timestamp изменяется. Второй тоже пытается модифицировать эту запись, но количество модифицированных им записей окажется равным нулю, потому что указанный во фразе where временной штамп больше не существует.
...
Рейтинг: 0 / 0
Блокировка строк
    #32051104
dao
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вариант с TimestampField наверное поможет - тогда для "удачного" пользователя @@rowcount не ноль а для не удачного 0 - надо для анализа прошло обновление или нет
Всем спасибо!
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Блокировка строк
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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