【问题标题】:SQL SERVER Export Json to FileSQL SERVER 将 Json 导出到文件
【发布时间】:2019-02-14 22:05:21
【问题描述】:

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

例子:

SELECT * FROM SYS.all_columns FOR JSON AUTO

我知道一种使用命令“BCP”的方法。

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

(您可以在此处观看转换示例:convert table to Json)

【问题讨论】:

  • 与任何其他SELECT文件的方法基本相同。

标签: json sql-server tsql bcp


【解决方案1】:

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

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

重要提示:SQL-Server 对文件系统的访问非常有限。它没有作为运行脚本的用户运行。它在运行 SQL Server 的机器的上下文中运行:因此,像 c:\temp\SomeFile.json 这样的文件目标可能不会进入您机器上所谓的目录中。共享驱动器上某处的目标可能会因访问冲突而失败。

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

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

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

希望这会有所帮助...

【讨论】:

    【解决方案2】:
    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'
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-04-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-07-12
      • 2013-09-10
      • 1970-01-01
      相关资源
      最近更新 更多