zoukankan      html  css  js  c++  java
  • SQL Server2016 原生支持JSON

    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才能陆续推出

    更多SQL Server2016好用的功能,敬请期待o(∩_∩)o 

  • 相关阅读:
    一个简单的knockout.js 和easyui的绑定
    knockoutjs + easyui.treegrid 可编辑的自定义绑定插件
    Knockout自定义绑定my97datepicker
    去除小数后多余的0
    Windows Azure Web Site (15) 取消Azure Web Site默认的IIS ARR
    Azure ARM (1) UI初探
    Azure Redis Cache (3) 创建和使用P级别的Redis Cache
    Windows Azure HandBook (7) 基于Azure Web App的企业官网改造
    Windows Azure Storage (23) 计算Azure VHD实际使用容量
    Windows Azure Virtual Network (11) 创建VNet-to-VNet的连接
  • 原文地址:https://www.cnblogs.com/lyhabc/p/4747694.html
Copyright © 2011-2022 走看看