2015-03-23 2 views
1

Я использую запрос SELECT в таблице SQL Server с 33 000 строк, но он возвращает только 3500 строк.У нас есть ограничение на максимальное количество строк, возвращаемых запросом SELECT

У нас есть лимит на максимальное количество строк, возвращаемых запросом SELECT в SQL Server? Пожалуйста, дайте мне знать, как изменить его, если да.

Заранее спасибо

+0

Вы можете оставить свой запрос – mohan111

+1

Запрос может возвращать миллиарды строк. Что-то еще в запросе ограничивает результаты. Есть ли ПРИСОЕДИНЕНИЯ? Предложение WHERE? ВВЕРХ? OFFSET/FETCH? Как насчет 'SET ROWCOUNT'? –

+0

select даст все записи независимо от того, сколько данных. Возможно, вы ограничиваете записи, используя верхнее предложение или ограничение (mysql) или используя row_number для фильтрации – mohan111

ответ

0

Select * from youtable должен показать вам все 33,000 строки, если у вас действительно есть такое количество строк. Если я напишу select top 1000 * from yourtable, то я увижу только 1,000 тысяч. Я работаю со столами с 950,000 строками, поэтому вы должны быть уверены, что на самом деле у вас есть сумма, которую вы сказали. Повторите попытку с помощью select * from yourtable.

+0

yes У меня есть 33000 строк в моей таблице –

+0

Rajesh, вы работаете с производственной базой данных? возможно, что у вас есть коррумпированная таблица, в этом случае вам следует тщательно использовать команду DBCC CHECKDB, я настоятельно рекомендую вам прочитать об этом раньше, если ваш db находится в процессе производства.Удостоверьтесь, что у вас есть bakup вашего db и попробовал снова, если DBCC CHECKDB ('dbmsrecover', REPAIR_REBUILD) не работает –

4

По умолчанию в Sql Server необходимо вернуть все запрошенный запрос. Вы можете переопределить значение по умолчанию через SET ROWCOUNT, но я буду очень удивлен, если это то, что происходит здесь. Вместо этого, проверить SQL команды для любого из следующих, которые могут быть лимитирующим результаты:

  • TOP
  • OFFSET/FETCH
  • JOIN
  • WHERE
  • APPLY
  • GROUP BY
  • DISTINCT
  • HAVING (Подразумевается GROUP BY, но может ограничить записи, где группы не делают)
1

По умолчанию Sql-сервер возвращения каждая вещь в вашей таблице как select * from yourtable, если он имеет 4 строки или 40000 строк, он обратный все.

Для этого Sqlserver есть предложение where, которое использовалось для фильтрации данных. 3500 строк из ваших 33000 строк, это не делается автоматически, либо вы выполняете поиск в неправильной базе данных, либо получаете условие фильтра.

Теперь, если вы хотите получить только ограниченную запись для возврата, первое, что приходит в голову, - это предложение TOP intvalue, которое возвращает строки, которые вы определяете в intvalue.

- Top 
- Where 
- Distinct 

И другие, как @Joel.

Смежные вопросы