Как экспортировать запрос SQL Server 2005 в CSV - PullRequest
63 голосов
/ 28 апреля 2009

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

Есть ли способ BCP сделать это?

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

Есть ли какая-то замечательная, простая утилита, встроенная в Management Studio, которую я просто пропускаю?

Ответы [ 13 ]

63 голосов
/ 28 апреля 2009

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

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

44 голосов
/ 28 апреля 2009

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

31 голосов
/ 15 декабря 2009

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

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

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

25 голосов
/ 30 сентября 2010

Мне нужно было сделать еще одну вещь, кроме того, что сказал Сижин, чтобы заставить его правильно добавлять кавычки в 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 невозможно заключить в кавычки поля.

9 голосов
/ 28 апреля 2009

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

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

6 голосов
/ 28 апреля 2009

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

Вот ссылка , описывающая конфигурацию.

5 голосов
/ 28 апреля 2009

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

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

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

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

Все настройки в разделе Инструменты .. Опции и запросы .. (думаю, не могу проверить) тоже

2 голосов
/ 18 марта 2010

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

Легко!

2 голосов
/ 06 января 2010

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

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

1 голос
/ 19 июня 2017

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

  1. Открыть новый файл Excel.
  2. Нажмите на вкладку данных
  3. Выбрать другие источники данных
  4. Выберите SQL Server
  5. Введите имя своего сервера, базу данных, имя таблицы и т. Д.

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

...