SQL Server2016 原生支持JSON

SQL Server 2005 开始支持 XML 数据类型,提供原生的 XML数据类型、XML 索引以及各种管理 XML 或输出 XML 格式的函数。

在 SQL Server 时隔 4 个主要版本之后,终于在 Microsoft Ignite 2015 大会上正式宣布,新一代的 SQL Server 2016 正式支持现在最流行的数据交换格式— JSON(JavaScript Object Notation)。

SQL Server 2016 对JSON的支持并不是增加一个JSON数据类型,而是提供一个更轻便的框架,帮助用户在数据库里处理JSON格式数据。

用户不需要更变现有的表结构,因为SQL Server使用NVARCHAR 数据类型来存储JSON文件,并且跟现有技术相互兼容,比如全文搜索、列存储索引、in-memory OLTP,应用程序不需要做任何修改

不需要使用JSON.Net这类工具分析和处理JSON数据,利用SQL Server内置函数就可以处理JSON数据,轻松将查询结构输出为JSON格式,或者搜索JSON文件内容。


使用 JSON AUTO 输出JSON 格式

要将select语句的结果以JSON输出,最简单的方法是在后面加上 FOR JSON AUTO

测试版本

Microsoft SQL Server 2016 (CTP2.2) - 13.0.407.1 (X64)   Jul 22 2015 21:19:11 Copyright (c) Microsoft Corporation Enterprise Evaluation Edition (64-bit) on Windows Server 2012 R2 Standard 6.3 <X64> (Build 9600: ) (Hypervisor) 

SELECT * FROM [dbo].[Client] GO SELECT * FROM [dbo].[Client] FOR JSON AUTO GO

我们可以把每列中显示的最大字符数 设置为8192


加上Root Key

如果想为FOR JSON 加上Root Key,可以使用ROOT选项来指定 Root Key 名称

SELECT * FROM [dbo].[Client] FOR JSON AUTO,ROOT('SUSU') GO


使用JSON PATH 输出JSON格式

当想要自定义输出JSON格式结构的时候,必须用JSON PATH描述,若SELECT 的字段名称相同,必须用别名方式来重新命名字段名这样才可以继续查询

另外,如果字段的默认值为NULL,那么输出JSON时,JSON会忽略null的只。如果要显示null值,可以加上INCLUDE_NULL_VALUES 选项(同样适用于JSON AUTO字句)

select * from  [dbo].[Client] --FOR JSON PATH SELECT * FROM [dbo].[Client] WHERE ClientID =2 FOR JSON PATH [{"ClientID":2,"Firstname":"Peter","Lastname":"Nielsen","Birthdate":"1998-05-19T00:00:00","Email":"Peter@126.com","PhoneNumber":"+86-16326269674","Birthplace":"Stockholm","SocialSecurityNumber":"1901531234"}] --FOR JSON PATH SELECT * FROM [dbo].[Client] WHERE ClientID =4 FOR JSON PATH,INCLUDE_NULL_VALUES [{"ClientID":4,"Firstname":"kade","Lastname":null,"Birthdate":"1980-01-06T00:00:00","Email":"Lotte@SOHU.com","PhoneNumber":"+86-16326269674","Birthplace":"Aalborg","SocialSecurityNumber":"1061234"}]

更多关于JSON的功能

目前SQL Server 2016 CTP2 对于JSON的功能支持还是比较有限,例如内置处理JSON格式化的函数,

ISJSON(判断是否是JSON格式)、JSON_VALUE(分析JSON文件并提取出值) 、OPENJSON(将JSON文件转换为普通数据表)

这些功能要等到CTP3才能陆续推出

转载于:https://www.cnblogs.com/cuihongyu3503319/p/10400404.html

SQL Server2016 原生支持JSON相关推荐

  1. azure不支持哪些语句 sql_Azure SQL数据库已经支持JSON

    我们很高兴地宣布你现在可以在 Azure SQL 中查询及存储关系型数据或者 JSON 了.Azure SQL 数据库提供了读取 JSON 文本数据的简单的内置函数,将 JSON 文本转化成表,以及将 ...

  2. sql server2016里面的json功能 - 转

    测试一下基本的,从查询结果里面构造一个json 的格式 create table t1(ID int identity,name nvarchar(50),Chinese int ,Math int) ...

  3. SQL Server 2016 JSON原生支持实例说明

    原文:SQL Server 2016 JSON原生支持实例说明 背景 Microsoft SQL Server 对于数据平台的开发者来说越来越友好.比如已经原生支持XML很多年了,在这个趋势下,如今也 ...

  4. MariaDB 10.0.X中,动态列支持 JSON 格式来获取数据

    MariaDB 10.0.X中,动态列(Dynamic Columns),可以支持 JSON 格式来获取数据. 为了兼容传统SQL语法,MariaDB 10和MySQL5.7支持原生JSON格式,即关 ...

  5. html在线测试接口,apiManager: 小幺鸡在线接口管理系统,支持在线测试,支持json,txt,xml,html,js,流,和 WebSocket...

    特点 在线接口测试 目前支持 json,text,html,xml,jsonp,Websocket markdown编辑器 在线demo (推荐使用在线系统) 文件夹说明 web 文件夹是前端静态页面 ...

  6. sql与nosql_SQL Server JSON函数:NoSQL与关系世界之间的桥梁

    sql与nosql In this article, we will explain what JSON is, what are the SQL Server JSON functions intr ...

  7. Delphi XE6 原生解析json

    Delphi XE6 原生解析json (2014-07-22 23:22:35) 转载▼ 标签: it 分类: DelphiXE6 Delphi XE5带了system.json单元,原生提供了js ...

  8. PowerBuilder8.0和SQL Server2008稳定升级到PowerBuilder11.5和SQL Server2016源码无报错

    客户是一家跨国企业,当前使用版本为PowerBuilder8.0,数据库使用的SQL Server2008.本次升级是要把老旧的PB升级到新的PowerBuilder11.5版本,数据库升级到SQL ...

  9. Nerdctl 原生支持 Nydus 加速镜像

    文|李楠(GitHub ID : @loheagn) 北京航空航天大学 21 级研究生 云原生底层系统的开发和探索工作. 本文 6369 字 阅读 16 分钟 OSPP 开源之夏是由中科院软件研究所& ...

最新文章

  1. Java反序列化漏洞整理
  2. [YTU]_2442( C++习题 矩阵求和--重载运算符)
  3. 如果重力对人的意识有影响
  4. .NET 下载、文档访问新姿势
  5. python打开文件_用Python(in PsychoPy)打开SPSS数据文件
  6. linux权限源码分析,Linux基础之文件权限详解
  7. 集成学习voting Classifier在sklearn中的实现
  8. [ios]object-c math.h里的数学计算公式介绍
  9. linux之替换开机logo
  10. 电力拖动自动控制系统复习(二)
  11. Windows | 管理员权限打开CMD 快捷键
  12. [Growth]Steve Jobs——Follow your heart and intuition, everything else is secondary.
  13. 视频号如何给账号定位,如何做好视频号的定位
  14. 拉格朗日乘子法、KKT条件、拉格朗日对偶性
  15. 判断PR劫持的目标网站的方法
  16. 前端工程化: 脚手架+物料库快速生成新项目
  17. AI 算法岗工资一览
  18. 织梦的php模板文件在哪,主要模板文件与功能说明
  19. 智慧小区项目遇到的问题汇总解决参考
  20. STEAM课程的五大教学策略

热门文章

  1. 台式计算机怎么加一个硬盘,如何再安装一个台式计算机硬盘驱动器?如何在计算机安装中添加额外的硬盘...
  2. jquery/css需要记录的小知识(持续补充)
  3. Android移动开发之【Android实战项目】DAY13-MPChart简单的折线图LineChart
  4. bindservice启动服务
  5. python2 队列的使用_使用2个队列创建堆栈
  6. android 轮播 getWith,NavigationTermSet.GetWithNewView 方法
  7. ubuntu libapache2-mod-php5,ubuntu安装apache2 mysql5 php5
  8. 企业网络推广方案分享如何针对大量的长尾词进行更好地优化方法!
  9. 网络推广期间遇到页面无效收录情况网络推广专员如何应对?
  10. 企业网络推广专员浅析企业网络推广日常维护要做好