Есть ли функция SQL, которая позволяет мне автоматически экспортировать результат запроса в .csv? - PullRequest
0 голосов
/ 03 августа 2020

Я пытаюсь создать резервную копию всех таблиц в базе данных сервера SQL. Вот лог c, который я хотел бы выполнить:

For Each TableName in MyDatabase
SELECT * 
FROM TableName
Export Results to C:\TableName.csv
Loop

1 Ответ

0 голосов
/ 03 августа 2020

* Заявление об отказе от ответственности, что ни один из них никогда не будет лучшим вариантом, чем собственная резервная копия с точки зрения резервного копирования данных. Я предполагаю, что вам просто нужны резервные копии плоских файлов.

Доступны несколько ручных опций: от создания сценариев и данных через Tasks->Generate Scripts до ручного запуска select * from tablename и последующего щелчка правой кнопкой мыши -> Скопируйте столбцы заголовков в их собственные файлы Excel.

Более автоматизированные параметры включают пакеты SSIS для обработки такого рода logi перечислителя c. Я считаю, что лучший способ справиться с этим - это сценарий PowerShell. См. Комментарий @ Smor к следующему ответу: SQL Server Management Studio 2012 - Экспорт всех таблиц базы данных как csv , для получения подробного решения PowerShell.

Единственный T- SQL варианты запросов на основе, о которых я знаю, были бы попыткой чего-то из следующего:

SELECT
    'insert into OPENROWSET(''Microsoft.Jet.OLEDB.4.0'', 
    ''Excel 8.0;Database=@filepath\'' + t.name + '.csv '', --@filepath would be replaced with your logic for determining filename+path
    ''SELECT * FROM [SheetName$]'') 
    select * from ' + t.name + ';'
FROM
    sys.tables

И выполнение результатов этого скрипта.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...