Как экспортировать запрос SQL Server 2005 в CSV
-
18-09-2019 - |
Вопрос
Я хочу экспортировать некоторые данные 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.
- Откройте новый файл Excel.
- Нажмите на вкладку «Данные».
- Выберите другие источники данных
- Выберите SQL-сервер
- Введите имя вашего сервера, базу данных, имя таблицы и т. д.
Если у вас более новая версия Excel, вы можете перенести данные из PowerPivot, а затем вставить эти данные в таблицу.
SSIS — очень хороший способ сделать это.Затем это можно запланировать с помощью заданий агента SQL Server.
Вы можете использовать следующий модуль Node.js, чтобы сделать это с легкостью: