В каких ситуациях разные пользователи будут видеть разные строки в таблице SQL Server?

StackOverflow https://stackoverflow.com/questions/83295

  •  01-07-2019
  •  | 
  •  

Вопрос

SQL-сервер версии 2000.

У нас есть несколько компьютеров, взаимодействующих с MSSQL Server.При поиске конкретной записи некоторые рабочие столы возвращают правильные данные, а некоторые нет.

Команда SQL - «SELECT * из Podordh, где ([нет] = 6141)» на одном или двух рабочих стопах, это возвращает запись.На сервере и на всех остальных рабочих столах записи не возвращаются.

На какие области мне нужно обратить внимание?Что могло бы стать причиной того, что это произошло?

Это было полезно?

Решение

Эта ошибка, вероятно, исходит от пользователя, который удалил/вставил эту запись в транзакцию, но еще не зафиксировал указанную транзакцию.

Другие советы

Проверьте, к какой базе данных и серверу вы подключаетесь на каждом компьютере — запрос достаточно прост, и вы должны получить один и тот же ответ везде, ЕСЛИ вы не подключаетесь к разным базам данных или серверам.

Если только ОДНА рабочая станция возвращает строку, то это похоже на то, что на этой рабочей станции есть открытая транзакция, которая не была зафиксирована.

В противном случае возможно, что уровни изоляции разные для разных рабочих станций, т.е.некоторые увидят незафиксированные данные, а другие нет?

Возможно, вам захочется посмотреть права доступа к таблице, из которой вы выбираете, если вы подключаетесь к серверу от имени разных пользователей с каждого компьютера.

Если некоторые пользователи, но не другие, имеют доступ для чтения этой таблицы, вы можете получить описанный результат.

После того, как вы исчерпаете все варианты, упомянутые выше, я бы рассмотрел блокировки строк и таблиц.В этом случае он должен вернуть ошибку, сообщающую, что произошла блокировка.Вы используете приложение, которое может поглощать ошибки?

Возможно, один или два пользователя, которые находят записи, используют другое имя схемы и, следовательно, другие таблицы.IE большинство пользователей используют dbo.PODORDH, но один или два пользователя используютotheruser.PODORDH.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top