Используйте SELECT

Oleg F
Дата: 29.01.2001 14:33:29
В команде SELECT предусмотрены специальные опции для явного указания способа блокировки.
Например, UPDLOCK. Нужно послать отобрать SELECT-ом эту запись по уникальному идентификатору (т.е. по значению(ям) первичного ключа) с указанием способа блокирования. Тогда до окончания транзакции запись будет заблокирована указанным способом.
Соответственно, когда кто-то другой обращается к этой записи, он будет ждать пока запись не разблокируется. С помощью команды SET LOCK_TIMEOUT можно задать время, в течение которого другой клиент ждёт освобождения записи. Как только время истечёт, клиент получит сообщение об ошибке.
Короче, почитайте документацию про это и поэкспериментируйте с помощью SQL-запросов и Query Analazer-а. И сразу станет понятно, как и что блокировать.
А поля всякие городить для отслеживания блокировок нужно было в SQL Server 6.5 и более ранних, т.к. там не было команды SET LOCK_TIMEOUT и не было блокировки на уровне записи и приходилось изощраться (на себе испытал). А в 7.0 без этого можно обойтись.
Oleg F
Дата: 29.01.2001 14:35:46
Это я не туда отправил, хотел ответить на вопрос "Как заблокировать запись", а почему-то попал в корень.