执行下面的存储过程:

SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE PROCEDURE[dbo].[SerializeJSON](
@ParameterSQL AS VARCHAR(MAX)
)
AS
BEGIN
  
DECLARE @SQL NVARCHAR(MAX)
DECLARE @XMLString VARCHAR(MAX)
DECLARE @XML XML
DECLARE @Paramlist NVARCHAR(1000)
SET @Paramlist = N'@XML XML OUTPUT'
SET @SQL = 'WITH PrepareTable (XMLString)'
SET @SQL = @SQL + 'AS('
SET @SQL = @SQL + @ParameterSQL+ 'FOR XML RAW,TYPE,ELEMENTS'
SET @SQL = @SQL + ')'
SET @SQL = @SQL + 'SELECT @XML=[XMLString]FROM[PrepareTable]'
EXEC sp_executesql @SQL, @Paramlist, @XML=@XML OUTPUT
SET @XMLString=CAST(@XML AS VARCHAR(MAX))
  
DECLARE @JSON VARCHAR(MAX)
DECLARE @Row VARCHAR(MAX)
DECLARE @RowStart INT
DECLARE @RowEnd INT
DECLARE @FieldStart INT
DECLARE @FieldEnd INT
DECLARE @KEY VARCHAR(MAX)
DECLARE @Value VARCHAR(MAX)
  
DECLARE @StartRoot VARCHAR(100);SET @StartRoot='<row>'
DECLARE @EndRoot VARCHAR(100);SET @EndRoot='</row>'
DECLARE @StartField VARCHAR(100);SET @StartField='<'
DECLARE @EndField VARCHAR(100);SET @EndField='>'
  
SET @RowStart=CharIndex(@StartRoot,@XMLString,0)
SET @JSON=''
WHILE @RowStart>0
BEGIN
    SET @RowStart=@RowStart+Len(@StartRoot)
    SET @RowEnd=CharIndex(@EndRoot,@XMLString,@RowStart)
    SET @Row=SubString(@XMLString,@RowStart,@RowEnd-@RowStart)
    SET @JSON=@JSON+'{'
  
    -- for each row
    SET @FieldStart=CharIndex(@StartField,@Row,0)
    WHILE @FieldStart>0
    BEGIN
        -- parse node key
        SET @FieldStart=@FieldStart+Len(@StartField)
        SET @FieldEnd=CharIndex(@EndField,@Row,@FieldStart)
        SET @KEY=SubString(@Row,@FieldStart,@FieldEnd-@FieldStart)
        SET @JSON=@JSON+'"'+@KEY+'":'
        -- parse node value
        SET @FieldStart=@FieldEnd+1
        SET @FieldEnd=CharIndex('</',@Row,@FieldStart)
        SET @Value=SubString(@Row,@FieldStart,@FieldEnd-@FieldStart)
        SET @JSON=@JSON+'"'+@Value+'",'
  
        SET @FieldStart=@FieldStart+Len(@StartField)
        SET @FieldEnd=CharIndex(@EndField,@Row,@FieldStart)
        SET @FieldStart=CharIndex(@StartField,@Row,@FieldEnd)
    END   
    IF LEN(@JSON)>0SET @JSON=SubString(@JSON,0,LEN(@JSON))
    SET @JSON=@JSON+'},'
    --/ for each row
  
    SET @RowStart=CharIndex(@StartRoot,@XMLString,@RowEnd)
END
IF LEN(@JSON)>0SET @JSON=SubString(@JSON,0,LEN(@JSON))
SET @JSON='['+@JSON+']'
SELECT @JSON
  
END
GO
执行下面的脚本就能生成JSON格式数据
EXEC[SerializeJSON] 'SELECT * FROM [dbo].[TEST]'
 

转载于:https://www.cnblogs.com/hank-chen/p/5916929.html

SQL SERVER 数据导出JSON相关推荐

  1. SQL Server 中的 JSON 数据

    下面是 JSON 文本的示例 [{ "name": "John", "skills": ["SQL", "C# ...

  2. sql azure 语法_使用Azure Data Studio从SQL Server数据创建图表

    sql azure 语法 In this article, we will explore charts in an Azure Data Studio using data stored in SQ ...

  3. 将本地的MS SQL Server数据导入到远程服务器上

    该演示引导客户将本地的MS SQL Server数据导入到远程服务器上,供客户的网站使用. 首先登录到远程数据库服务器: 1.右击您准备导入数据的数据库,选择"所有任务"下的&qu ...

  4. php实现sql server数据导入到mysql数据库_php实现SQL Server数据导入Mysql数据库(示例)...

    php将mssql的数据导入到mysql数据库中,代码: 代码示例: //连接SQL server数据库 $conn=mssql_connect("localhost"," ...

  5. 实验10 SQL Server 数据备份/恢复

    实验10 SQL Server 数据备份/恢复 一.实验目的 1.了解数据库备份的过程和属性设置: 2.掌握应用企业管理器备份和恢复数据库: 3.掌握应用T-SQL备份和恢复数据库: 4.掌握数据导入 ...

  6. SQL Server的导出导入方式有

    SQL Server的导出导入方式有: 在SQL Server中提供了导入导出的界面操作. 在界面操作中又分[复制一个或多个表或视图的数据]和[编写查询以指定要传输的数据]两种模式,第一种是直接对表. ...

  7. Sql server 数据转到 Mysql 数据库

    Sql server 数据转到 Mysql 数据库http://www.bieryun.com/3355.html 在网上找了一些方案,目前一个可行的较好的方案,虽然不够完美但也十分好用: 用到的用具 ...

  8. php实现sql server数据导入到mysql数据库_SQL Server数据库导入MySQL数据库的体验_MySQL...

    SQL Server 因工作需要,要将存放在sql server数据库中的数据全部导入到mysql数据库中,在网上搜集相关资料,找到两种方法,现在分别谈谈对他们的看法. 第一种是安装mysql ODB ...

  9. 学习SQL:SQL Server数据透视表

    In the previous few articles in this series, we've set the foundations on how to create a report. We ...

最新文章

  1. 微生物生态学中的挑战:建立对于群落功能与动态的预测性认识
  2. Java枚举enum以及应用:枚举实现单例模式
  3. verilog对YCrCb转换灰度设计及仿真
  4. ubuntu14安装python_ubuntu14.04 安装python3.7
  5. 前端学习(3143):react-hello-react之总结生命周期
  6. php后台管理员登录密码错误,如果后台管理员的密码错误,我该怎么办,还有两种找回密码的方法...
  7. c语言判断回文字符串递归,用递归实现判断一个字符串是否为回文串
  8. android都图片mat_普通Android码农,该如何逆袭月薪5W的移动端架构师?
  9. centos报acpi 错误解决方法实测有用
  10. 微价值:专訪个人开发人员800万用户之《系统清道夫》
  11. 微信小程序(一) 入门
  12. Android中Adapter之BaseAdapter使用
  13. chown、chgrp 更改文件属主属组
  14. ae效果英文版翻译对照表_AE中英文对照
  15. cloudflare_CloudFlare泄漏的消息揭晓,密码管理变得轻松
  16. hash冲突的解决方法
  17. 使用长时间运行作业的警报监控SQL代理
  18. 编写微信聊天机器人3《聊天精灵WeChatGenius》:使用Xposed来hook微信,找到微信进程。
  19. 4296. 【NOIP2015模拟11.2】有趣的有趣的家庭菜园
  20. Python3记录--个人常用函数及资源(持续更新)

热门文章

  1. 机器学习笔记(十一):支持向量机
  2. oracle数据库建表视频,Oracle数据库的创建表全
  3. 软件测试ipad电池,ipad2020电池有问题是真的吗
  4. linux多线程编程和linux 2.6下的nptl,Linux多線程編程和Linux 2.6下的NPTL
  5. php批量下载网络图片,php批量下载网页图片并替换路径为本地
  6. cuda默认函数与c++冲突_好程序员Python教程系列-第8讲:函数和模块
  7. Struts2.3接收post方式提交的表单参数的方式
  8. springboot3——Email
  9. Linux内核OOM机制的详细分析
  10. MachineLearning(11)-关联规则分析