SQL SERVER Экспорт JSON в файл - PullRequest
       10

SQL SERVER Экспорт JSON в файл

0 голосов
/ 13 февраля 2019

Я хочу экспортировать из sql сервера результат json в 'файл json'.

Пример:

SELECT * FROM SYS.all_columns FOR JSON AUTO

Мне известен один способ сделать это с помощью команды "BCP".

Вам предлагается поделиться различными способами экспорта файла Json с сервера Sql.

(Пример преобразования можно посмотреть здесь: преобразование таблицы в Json )

Ответы [ 2 ]

0 голосов
/ 14 февраля 2019

Слишком много для комментария, но только половина ответа ...

Вы знаете BCP, поэтому вам нечего здесь сказать ...

Важно знать: SQL-серверочень ограничен в своем доступе к файловой системе.Он не работает как пользователь, выполняющий скрипт.он работает в контексте машины, на которой запущен SQL-сервер: поэтому место назначения файла, например c:\temp\SomeFile.json, может не попасть в так называемый каталог на вашей машине.В другом месте на общем диске может произойти сбой с нарушениями доступа.

Возможно, будет более гибким использовать внешний инструмент (Power Shell или любой язык программирования по вашему выбору) для подключения к базе данных и вызова результата взаказ на хранение.

Если вам нужно запустить это из SQL-сервера, вы можете запустить такую ​​внешнюю программу, используя xp_cmdshell (так же, как вы делаете это с BCP.

.создать VIEW, UDF или SP для возврата всего, что вам нужно, в одном вызове (с некоторыми параметрами). Это позволит вам контролировать содержимое из SQL-Server , но выполнять поиск ивнешнее хранилище.

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

0 голосов
/ 13 февраля 2019
  1. Позволяет системным администраторам контролировать, используется ли 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'
...