У меня есть длительная транзакция вставки, которая вставляет данные в несколько связанных таблиц.
Когда эта вставка запущена, я не могу выполнить выбор * из MainTable. Селект просто крутит свои колеса, пока вставка не закончится.
Я буду выполнять несколько таких вставок одновременно / в одно и то же время. Чтобы проверить, что информация не вставляется дважды, я сначала запрашиваю MainTable, чтобы увидеть, есть ли запись и не обработан ли ее обработанный бит.
Во время транзакции вставки он сбрасывает обработанный бит MainTable для этой строки.
Так что мне нужно иметь возможность прочитать таблицу, а также сказать, обновляется ли конкретная строка в данный момент.
Есть идеи, как настроить это в Microsoft SQL 2005? Я просматриваю документацию SET TRANSACTION LEVEL .
Спасибо,
Кит
РЕДАКТИРОВАТЬ: Я не думаю, что одна и та же партия вставки произойдет в одно и то же время. Это двоичные файлы, которые обрабатываются и их данные вставляются в базу данных. Я проверяю, что файл не был обработан, прежде чем проанализировать и вставить данные. Когда я делаю проверку, если файл не был просмотрен прежде, я делаю быструю вставку в MainTable с обработанным битом, установленным в false.
Есть ли способ заблокировать обновляемую строку вместо всей таблицы?