Ошибка записи с использованием ключевого слова top в запросе sql - PullRequest
2 голосов
/ 06 января 2012

У меня есть запрос Linq, который работает нормально, но я заметил, что когда я использую ключевое слово take с этим запросом, он не возвращает те же самые избранные записи. Когда я увидел запрос Sql-профилировщика, они полностью совпадают, за исключением ключевого слова top, в чем может быть проблема. Еще одна вещь, которую я заметил, - когда я даю не больше записей в базе данных, это хорошо работает и с take.

Я прикрепляю запрос и вложение записей

enter image description here

и когда я применяю топ-10 в этом запросе, он показывает эти записи

enter image description here

В чем может быть проблема с использованием Sql Server 2008 R2.

Ответы [ 3 ]

7 голосов
/ 06 января 2012

Использование ключевого слова TOP без упорядочения не гарантирует повторяемость набора результатов.

С здесь

Если в операторе SELECT, содержащем TOP, также есть предложение ORDER BY, возвращаемые строки выбираются из упорядоченного результирующего набора. Весь набор результатов построен в указанном порядке, а верхние n строк в упорядоченный набор результатов возвращается.

3 голосов
/ 06 января 2012

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

3 голосов
/ 06 января 2012

Попробуйте заставить запрос упорядочить записи, используя ORDER BY (или orderby в linq).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...