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-сервера, но выполнять извлечение и хранение извне.

Надеюсь это поможет...

  1. Позволяет системным администраторам контролировать, используется ли xp_cmdshell.
EXEC sp_configure 'show advanced options', 1;  
GO  
RECONFIGURE;  
GO  
EXEC sp_configure 'xp_cmdshell', 1;  
GO  
RECONFIGURE;  
GO
  1. Выполните ваш запрос с помощью 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'
Другие вопросы по тегам