Збережіть результати у форматі CSV * із * заголовками у SSMS


13

У SQL Server 2008 R2, коли я зберігаю результати як CSV, заголовків немає. Я можу обійти це, скопіювавши та вставивши за допомогою "Копіювати заголовки", або просто захопити заголовки та вставити їх у CSV тощо, але чи є кращий спосіб це зробити?


Насправді, ідея, яка робить це, може бути ідеальною.
Кайл Брандт

Скопіюйте із заголовків, а потім вставте в Excel!

Відповіді:


22

У SSMS потрібно змінити деякі параметри:

Інструменти - Параметри - Результати запиту - сервер sql - результати для сітки (або тексту) -> Включити заголовки стовпців під час копіювання або збереження результатів .

Змінені налаштування застосовуються до нових, але не існуючих вікон запитів.


10

Я бачу, що ви чітко заявили, що шукаєте рішення в SSMS, але я подумав, що запропоную рішення PowerShell, якщо це допоможе (SQLPS доступний зсередини SSMS 2008 та 2008 R2).

Ви можете використовувати SQLPS (або звичайний PowerShell з оснащенням командлета SQL), щоб запустити щось подібне:

Invoke-Sqlcmd -Query "sp_databases" -ServerInstance "LocalHost\R2" |
Export-Csv -Path "C:\temp\MyDatabaseSizes.csv" -NoTypeInformation

Я можу продовжувати цей приклад, якщо вам цікаво.


3

Якщо вам подобається підхід до сценарію PowerShell, у мене є сценарій, який експортує до CSV з SSMS через PowerShell . Мені це подобається в тому, що ти можеш мати динамічний SQL Script, чорт ви можете вибрати будь-який текст і SSMS передає його в сценарій як аргумент.

Тільки недоліком є ​​те, що я не знайшов розумного способу пройти через з'єднання поточного вікна. Моя поточна робота полягає в тому, щоб створити різні інструменти, які різняться лише в рядках їх з'єднання, тобто PROD_DW, PROD_DB, TEST_DW ...


1

Ви можете зробити об'єднання "all all", щоб явно додати заголовки стовпців у вигляді вибору єдиного рядка, об'єднаного проти реальних рядків, наприклад:

SELECT 'col1' AS col1... 
UNION ALL 
SELECT T.col1... 
FROM TABLE T

Найбільший біль при такому підході - це вимушене відтворення типу даних персонажів під час другого вибору.


-1

SSMS не є інструментом експорту даних. Використовуйте або майстра імпорту / експорту, або BCP, обидва з яких були розроблені як інструменти експорту даних і будуть робити те, що ви хочете зробити.


Якби це було абсолютно вірно, у нього взагалі не повинно бути жодного варіанта експорту. Якщо будь-яке програмне забезпечення, якщо ви додаєте функцію, зробіть її справною. Принаймні SSMS 2008R2 не вдається виконати цей тест, коли мова йде про експорт. Крім того, SSMS фактично може задовольнити потребу ОП.
Ерік Дж.

2
SSMS - це спеціальний інструмент експорту даних. Якщо вам потрібен одноразовий витяг даних, скажімо, в Excel, то SSMS - це найшвидший і найпростіший інструмент. За час запуску Майстра експорту ви можете виконати запит і зберегти результати.
Greenstone Walker
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.