Я всегда думал, что писатели никогда не блокируют читателей (и наоборот).
Однако то, что я вижу сейчас, очень странно.Я, наверное, не прав и что-то здесь не хватает.Поэтому, пожалуйста, помогите, поскольку это сводит меня с ума!
Сегодня я создал очень простую таблицу:
USE [testdb]
GO
CREATE TABLE [dbo].[MyTab](
[N] [int] NULL
) ON [PRIMARY]
GO
ALTER TABLE [dbo].[MyTab] WITH CHECK ADD CHECK (([n]>(10)))
GO
Затем я заполнил ее несколькими строками.
Далее я решил установить IMPLICIT_TRANSACTIONS
на ON
и выбрать из таблицы в другом сеансе совершенно отдельное выполнение SQL Server Management Studio.Приведенный ниже снимок демонстрирует, что произошло:
Вы видите проблему?Запрос на выбор все еще выполняется!Этот запрос никогда не возвращается.Он возвращается только после того, как я зафиксировал или откатил оператор вставки.Я тестировал один и тот же сценарий несколько раз, и одно и то же происходило снова и снова.
Чтобы дополнительно подтвердить мои наблюдения, взгляните на приведенный ниже отчет:
Можете ли вы помочь и сообщить, что я делаю не так?
или если мое предположение о том, что читатели не могут быть заблокированы, полностью (или частично) неверно?
Спасибо!
Примечание. Изначально я был подключен к тому же пользователю, что и вставкасеанс, когда я хотел запросить таблицу.Как только я увидел, что мой выбор был заблокирован, я решил войти в систему и протестировать, используя другого пользователя.Следовательно, использование в качестве учетной записи 'sa'.:)