我想从sql server结果json导出到'json文件'。
例:
SELECT * FROM SYS.all_columns FOR JSON AUTO
我知道使用命令“BCP”执行此操作的一种方法。
邀请您分享从Sql Server导出“Json文件”的不同方法。
(示例转换你可以在这里观看:convert table to Json)
很多评论,但只有一半答案......
你知道BCP,所以没有什么可以告诉你的......
重要的是要知道:SQL-Server在访问文件系统方面非常有限。它不是以运行脚本的用户身份运行的。它运行在运行SQL-Server的机器的上下文中:因此像c:\temp\SomeFile.json
这样的文件目标可能无法进入计算机上的所谓目录。共享驱动器上某处的目标可能会因访问冲突而失败。
使用外部工具(电源外壳或您选择的任何编程语言)连接到数据库并调用结果以存储它可能更灵活。
如果需要在SQL-Server中触发它,可以使用xp_cmdshell
执行这样的外部程序(就像使用BCP
一样)。
我建议创建一个VIEW,一个UDF或一个SP,在一次调用中返回你需要的东西(有一些参数)。这将允许您从SQL-Server中控制内容,但允许从外部执行检索和存储。
希望这可以帮助...
EXEC sp_configure 'show advanced options', 1; GO RECONFIGURE; GO EXEC sp_configure 'xp_cmdshell', 1; GO RECONFIGURE; GO
EXEC sys.XP_CMDSHELL 'bcp "SELECT * FROM SYS.all_columns FOR JSON AUTO;" queryout C:\Data\JsonTest.json -t, -c -S . -d master -T'