Как выбрать все строки для таблицы, они не являются частью транзакции, которая еще не зафиксирована?
Пример:
Допустим,
Таблица T имеет 10 строк.
Пользователь A выполняет транзакцию с некоторыми запросами:
INSERT INTO T (...)
SELECT ...
FROM T
// doing other queries
Теперь, вот сложная часть:
Что, если пользователь B в промежуток времени между пользователем A вставил строку и транзакция был зафиксирован, обновлял список в системе с помощью выбора в таблице T.
Я только хочу, чтобы пользователь SELECT B использовал возвращенные 10 строк (все строки из таблицы, которые позже не могут быть отменены). Как мне это сделать, если это вообще возможно?
Я попытался установить уровень изоляции для транзакции и добавить «WITH (NOLOCK)» «WITH (READUNCOMMITTED)» к запросу без какой-либо удачи.
Запрос либо возвращает все 11 записей, либо ожидает фиксации транзакции, и это не то, что мне нужно.
Любые советы очень ценятся, спасибо.