在Sql Server 2016中使用For Json子句把数据作为json格式导出,类似于FOR XML,可以使用列名或别名来定义最终JSON对象的结构层次。主要用途是:(a)连接查询多张表-一对多关系-并将结果集格式化为JSON对象。(b)把一对多的父子关系数据格式华为JSON数组保存到父表中,无需创建子表。
在SQL Server 2016中,可以使用FOR JSON子句把数据表直接生成为JSON字符串,反过来可以使用OPENJSON来把JSON数据解析为表变量,这大大方便了在数据库中处理非结构化数据。但是SQL Server 2016并没有内置的JSON类型,而是把JSON作为NVARCHAR来存储,这提升了可移植性,并且与现有Ado.net兼容。但是在存储空间节约方面并没有优势。