Вопрос

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

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

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

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

Это было полезно?

Решение

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

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

Другие советы

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

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

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

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

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

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

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

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

Вот ссылка описание конфигурации.

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

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

Или «Результаты в файл» также имеют параметры для CSV.

Или «Результаты в текст» с разделителями-запятыми.

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

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

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

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

Легкий!

В Sql Server 2012 — Management Studio:

Решение 1:

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

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

В меню выберите «Сохранить результаты как».

Выберите CSV

Решение 2:

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

Выберите задачи, экспортируйте данные

Выберите исходную базу данных

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

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

Выберите формат – с разделителями

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

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

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

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

Необходимость использования escape-символа или текстового квалификатора зависит от ваших требований.

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

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

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

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

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top