Как экспортировать запрос SQL Server 2005 в CSV

Я хочу экспортировать некоторые данные SQL Server 2005 в формат CSV (разделенные запятыми кавычками). Я могу придумать много сложных способов сделать это, но я хочу сделать это правильно. Я посмотрел на bcp, но я не могу понять, как помещать кавычки вокруг полей (кроме объединения их в значения полей, что является уродливым). Думаю, я мог бы сделать это с помощью sqlcmd и -o, но это кажется уродливым по той же причине.

Есть ли способ bcp для этого?

Есть ли разумный способ sqlcmd для этого?

Есть ли какая-то большая простая утилита, встроенная в Studio Management, которую я просто игнорирую?

Ответ 1

В Management Studio выберите базу данных, щелкните правой кнопкой мыши и выберите Tasks->Export Data. Там вы увидите опции для экспорта в различные форматы, включая CSV, Excel и т.д.

Вы также можете запустить свой запрос в окне запроса и сохранить результаты в CSV.

Ответ 2

В студии управления задайте параметры запроса для вывода в файл, а в параметрах → результаты запроса установите вывод в файл для вывода с использованием запятой в качестве разделителя.

Ответ 3

Если вы не можете использовать студию управления, я использую sqlcmd.

sqlcmd -q "select col1,col2,col3 from table" -oc:\myfile.csv -h-1 -s","

Это быстрый способ сделать это из командной строки.

Ответ 4

Мне пришлось сделать еще одну вещь, чем то, что сказал Сиджин, чтобы заставить ее правильно добавить кавычки в SQL Server Management Studio 2005. Перейти к

Tools->Options->Query Results->Sql Server->Results To Grid

Поставьте галочку рядом с этой опцией:

Quote strings containing list separators when saving .csv results

Примечание: указанный выше метод не будет работать для SSMS 2005 Express! Насколько я знаю, нет способа процитировать поля при экспорте результатов в .csv с использованием SSMS 2005 Express.

Ответ 5

Да, в Management Studio есть очень простая утилита, если вы просто хотите сохранить результаты запроса в CSV.

Щелкните правой кнопкой мыши на наборе результатов, выберите "Сохранить результаты как". Тип файла по умолчанию - CSV.

Ответ 6

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

Здесь ссылка, описывающая конфигурацию.

Ответ 7

Для специальных запросов:

Показывать результаты в режиме сетки (CTRL + D), запускать запрос, щелкнуть верхний левый бокс в сетке результатов, вставить в Excel, сохранить как CSV. Возможно, вы сможете вставлять его непосредственно в текстовый файл (теперь не можете его попробовать)

Или "Результаты для файла" также имеют опции для CSV

Или "Результаты для текста" с разделителями запятой

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

Ответ 8

установить nocount на

существуют кавычки, используйте -w2000 для сохранения каждой строки в одной строке.

Ответ 9

В SQL 2005 это просто: 1. Откройте студию управления SQL Server и скопируйте требуемый SQL-запрос в TSQL, например exec sp_whatever 2. Запрос- > Результаты в сетку 3. Выделите оператор sql и запустите его 4. Выделите результаты данных (щелкните левой кнопкой мыши по верхней левой области сетки результатов) 5. Щелкните правой кнопкой мыши и выберите Сохранить результаты как 6. Выберите CSV в типе "Сохранить как", введите имя файла, выберите местоположение и нажмите "Сохранить".

Легко!

Ответ 10

В Sql Server 2012 - Management Studio:

Решение 1:

Выполнить запрос

Щелкните правой кнопкой мыши окно "Результаты"

Выберите Сохранить результаты Как из меню

Выберите CSV

Решение 2:

Щелкните правой кнопкой мыши по базе данных

Выберите "Задачи", "Экспорт данных"

Выберите исходный DB

Выберите пункт назначения: назначение плоского файла

Выберите имя файла

Выберите формат - Разграничено

Выберите таблицу или напишите запрос

Выберите разделитель столбцов

Примечание: Вы можете выбрать классификатор текста, который будет ограничивать ваши текстовые поля, например, кавычки.

Если у вас есть поле с запятыми, не используйте запятую в качестве разделителя, потому что она не поддерживает запятую. Вы можете выбрать разделитель столбцов, такой как Vertical Bar: | вместо запятой или символом табуляции. В противном случае напишите запрос, который ускользает от запятой или ограничивает поле varchar.

Эквивалентный символ или текстовый определитель, который вам нужно использовать, зависит от ваших требований.

Ответ 11

Я думаю, что самый простой способ сделать это - из Excel.

  • Откройте новый файл Excel.
  • Перейдите на вкладку "Данные"
  • Выбрать другие источники данных
  • Выберите SQL Server
  • Введите имя сервера, базу данных, имя таблицы и т.д.

Если у вас есть более новая версия Excel, вы можете перенести данные из PowerPivot и затем вставить эти данные в таблицу.

Ответ 12

SSIS - очень хороший способ сделать это. Затем это можно запланировать, используя задания агента SQL Server.

Ответ 13

Вы можете использовать следующий Node.js модуль, чтобы сделать это с легким движением:

https://www.npmjs.com/package/mssql-to-csv