Как экспортировать запрос 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