Скопируйте большие данные из результата запроса SQL

9

В моем sql server 2008 после выполнения запроса возврат данных очень велик, скажем, в миллионах. Я попытался скопировать, но это дает ошибку памяти sql исключения. Можете ли вы сообщить нам, как я могу скопировать все данные и вставить их в Excel.

Я не хочу экспортировать его в текстовый файл, так как данные не выровнены. Поэтому я хочу вручную скопировать и вставить его в Excel. Пожалуйста, дайте мне знать решение для этого

Sohail
источник
В качестве пояснения: вы можете получить исключение «нехватка памяти», когда SSMS пытается обработать входящие данные; если в памяти больше, чем умещается, вы получите эту ошибку. Если это не вызывает ошибку нехватки памяти, но это происходит, когда вы пытаетесь скопировать и вставить данные, то проблема заключается в том, что они копируют данные в память во второй раз для копирования и вставки. Любой ответ, который включает обход возврата данных в SMSS (например, текущий принятый ответ ), избегает этого.
RDFozz

Ответы:

17

Вы не сможете копировать и вставлять, как вы хотите. Однако у вас есть несколько вариантов. Простейшим является щелчок правой кнопкой мыши на выходе и сохранение в виде файла CSV. Это предполагает, что у вас нет запятых в ваших текстовых данных.

Сохранить результаты как

Ваш следующий вариант (и, вероятно, лучший) - использовать мастер экспорта. Щелкните правой кнопкой мыши на имени вашей базы данных, затем Задачи, затем Мастер экспорта

Где волшебник?

Вашим источником будет база данных, по которой вы щелкнули правой кнопкой мыши.

Источник

Выберите пункт назначения Excel.

Пункт назначения

Выберите «Написать запрос», чтобы указать данные для передачи.

Выберите запрос

Вставьте в ваш запрос

Вставьте в ваш запрос

Вы можете изменить название листа в вашей электронной таблице здесь.

Выберите исходные таблицы

Далее приведен список сопоставлений для обзора

Список отображений

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

Сохранить и запустить параметры

Затем просто нажмите финиш и снова финишируйте.

Кеннет Фишер
источник
2

Если вы настаиваете на Excel в качестве пункта назначения, то есть два простых варианта.

Во-первых, собственный «sqlcmd.exe» или «bcp.exe» позволяет выполнить запрос и автоматически выведет его в файл. Предполагая, что ваши данные не имеют вкладок, вывод с разделителями табуляции будет автоматически вводиться в столбцы Excel. Если у ваших данных есть вкладки, вам нужно будет выбрать другой разделитель, и Excel будет выбирать столбцы на основе этого во время импорта.

Во-вторых, поместите запрос в отчет SSRS (службы отчетов SQL Server), запустите его, щелкните стрелку справа от значка дискеты / сохранить и экспортируйте в Excel. Миллионы строк требуют SSRS 2012, сохраняя в формате .xlsx - к сожалению, даже SSRS 2008 R2 не допускает более 64 000 строк. Для автоматизации запланируйте отчет.

Ссылки на эти команды:

Technet sqlcmd entry

Вступление в технику bcp

social.msdn sqlcmd вкладка форума с разделителями табуляции

Анти-weakpasswords
источник
0

Если это всего лишь разовая вещь.

Запустите запрос. В окне результатов в правом нижнем углу щелкните Пустой квадрат в верхнем левом углу. Сохранить результаты как ... По умолчанию это CSV, выберите, куда вы хотите записать файл (сетевой или локальный).

Жевательные
источник