Моя настройка - один сервер с двумя экземплярами SQL Server 2000, INSTANCE1 и INSTANCE2.Каждый экземпляр имеет 1 DB, DBprod и DBstag.
У меня есть ситуация, когда мне нужно подготовить счета для нескольких клиентов, поэтому я хотел бы установить эксклюзивную блокировку для таблицы, пока я получаю номер счета из INSTANCE1.DBprod.LastInvoiceNumber для INSTANCE2.DBstag, выполнить расчет соема, подготовить счет-фактуру, а затем вставить счет-фактуру (заголовок и подробности) в INSTANCE1.DBprod, затем обновить INSTANCE1.DBprod.LastInvoiceNumber, повторить для следующего клиента и затем снять блокировку после IЯ закончил со всеми клиентами.
begin trans inv
ИСКЛЮЧИТЕЛЬНО БЛОКИРОВКА INSTANCE1.DBprod.LastInvoiceNumber
открыть курсор клиента
получить следующий изклиент
получает номер счета из INSTANCE1.DBprod.LastInvoiceNumber
подготовить счет
вставить счет в INSTANCE1.DBprod
обновить INSTANCE1.DBprod.LastInvoiceNumber (инкрементпо 1)
получить следующий от клиента (подготовить следующий счет клиента)
закрыть курсор клиента
commit trans inv
RELEASE LOCK ON INSTANCE1.DBprod.LastInvoiceNumber
Было бы это моим решением
УСТАНОВИТЬ УРОВЕНЬ ИЗОЛЯЦИИ СЕРТИФИКАЦИИ
Существует учетное приложение, использующее INSTANCE1.DBprod.LastInvoiceNumber, поэтому я хочу заблокировать таблицу исключительно до тех пор, пока не закончу публиковать все свои счета.