SQL SERVER将Json导出到文件

问题描述 投票:0回答:2

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

例:

SELECT * FROM SYS.all_columns FOR JSON AUTO

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

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

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

json sql-server tsql bcp
2个回答
2
投票

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

你知道BCP,所以没有什么可以告诉你的......

重要的是要知道:SQL-Server在访问文件系统方面非常有限。它不是以运行脚本的用户身份运行的。它运行在运行SQL-Server的机器的上下文中:因此像c:\temp\SomeFile.json这样的文件目标可能无法进入计算机上的所谓目录。共享驱动器上某处的目标可能会因访问冲突而失败。

使用外部工具(电源外壳或您选择的任何编程语言)连接到数据库并调用结果以存储它可能更灵活。

如果需要在SQL-Server中触发它,可以使用xp_cmdshell执行这样的外部程序(就像使用BCP一样)。

我建议创建一个VIEW,一个UDF或一个SP,在一次调用中返回你需要的东西(有一些参数)。这将允许您从SQL-Server中控制内容,但允许从外部执行检索和存储。

希望这可以帮助...


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'
© www.soinside.com 2019 - 2024. All rights reserved.