SQL SERVER将Json导出到文件

时间:2019-02-13 20:27:36

标签: json sql-server tsql bcp

我想从sql server结果json导出到“ json文件”。

示例:

SELECT * FROM SYS.all_columns FOR JSON AUTO

我知道一种使用命令“ BCP”执行此操作的方法。

邀请您共享不同的方法来从Sql Server导出“ Json文件”。

(转换示例,您可以在这里观看:convert table to Json

2 个答案:

答案 0 :(得分:2)

评论太多了,但答案只有一半...

您了解BCP,所以这里无话可说...

重要信息:SQL Server对文件系统的访问非常有限。它没有以运行脚本的用户身份运行。它在运行SQL Server的计算机上下文中运行:因此,c:\temp\SomeFile.json之类的文件目标可能不会进入计算机的所谓目录中。共享驱动器上某处的目标可能会因访问冲突而失败。

使用外部工具(Power Shell或您选择的任何编程语言)连接数据库并调用结果以进行存储,可能会更加灵活。

如果需要在SQL Server中触发此操作,则可以使用xp_cmdshell执行这样的外部程序(就像使用BCP执行该操作一样。

我建议创建一个VIEW,UDF或SP以在单个调用中返回您需要的任何内容(带有一些参数)。这样,您就可以在SQL Server内控制内容,而在外部执行检索和存储。

希望这对您有帮助...

答案 1 :(得分:0)

  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'