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

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


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