SQL SERVER Экспорт JSON в файл
Я хочу экспортировать из sql сервера результат json в 'файл json'.
Пример:
SELECT * FROM SYS.all_columns FOR JSON AUTO
Я знаю один способ сделать это с помощью команды "BCP".
Вам предлагается поделиться различными способами экспорта файла Json From Sql Server.
(Пример конвертации вы можете посмотреть здесь: конвертировать таблицу в Json)
2 ответа
Многое за комментарий, но только половина ответа...
Вы знаете BCP, так что вам нечего здесь сказать...
Важно знать: SQL-сервер очень ограничен в доступе к файловой системе. Он не работает как пользователь, выполняющий скрипт. он работает в контексте машины, на которой работает SQL-сервер: c:\temp\SomeFile.json
может не попасть в так называемый каталог на вашем компьютере. Место назначения где-то на общем диске может не работать с нарушениями доступа.
Для подключения к базе данных и вызова результата для его сохранения может быть более гибким использование внешнего инструмента (Power Shell или любой язык по вашему выбору).
Если вам нужно запустить это из SQL-сервера, вы можете запустить такую внешнюю программу, используя xp_cmdshell
(так же, как вы делаете это с BCP
,
Я бы предложил создать VIEW, UDF или SP для возврата всего, что вам нужно, за один вызов (с некоторыми параметрами). Это позволит вам управлять контентом изнутри SQL-сервера, но выполнять извлечение и хранение извне.
Надеюсь это поможет...
- Позволяет системным администраторам контролировать, используется ли xp_cmdshell.
EXEC sp_configure 'show advanced options', 1; GO RECONFIGURE; GO EXEC sp_configure 'xp_cmdshell', 1; GO RECONFIGURE; GO
- Выполните ваш запрос с помощью bcp:
EXEC sys.XP_CMDSHELL 'bcp "SELECT * FROM SYS.all_columns FOR JSON AUTO;" queryout C:\Data\JsonTest.json -t, -c -S . -d master -T'