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 格式ui

要將select語句的結果以JSON輸出,最簡單的方法是在後面加上 FOR JSON AUTOlua

測試版本spa

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

 

 

咱們能夠把每列中顯示的最大字符數 設置爲8192code

 


加上Root Keyblog

若是想爲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 

相關文章
相關標籤/搜索