What Is the difference between SQL 2012 and 2016?
Top 7 Features Coming to SQL Server 2016, let's see in the detail with examples.
1. Query Store
2. Polybase
3. Stretch Database
4. JSON Support
5. Row Level Security
6. Always Encrypted
7. In-Memory Enhancements
Query Store
Actually, In this version Microsoft trying to
maintains a history of query execution plans with query performance and quickly
queries etc.
PolyBase
Microsoft is introduced Polybase, This is a data processing technique that is
called SQL Server connector.
This SQL connector provides the connectivity to Azure
Blob Storage and Hadoop using database tables query and Its dealing to a lot of
large text files.
Stretch Database
In this section, Microsoft is trying to reduce your storage cast by a hybrid feature that is called Stretch Database.
JSON Support
JSON Support Is very awesome features (https://smallseotools. com/json-formatter/), Using these features you can direct querying to Hadoop, SQL Server 2016 and also support to Lingua Franca.
Row Level Security
The SQL Server 2016 provide row-level security. It's
very useful for multi-tenant environments and Its provide the limit to access
the data based on role etc.
Always Encrypted
The SQL Server 2016 has the feature to supported
both column level encryption and encryption in transit as well.
The Always The encrypted mechanism provided an easy way to encryption to data and makes much better security.
The Always The encrypted mechanism provided an easy way to encryption to data and makes much better security.
In-Memory Enhancements
This feature already introduce in SQL Server
2014 but it has some limitation over data and issues like no-locking-issues and
high-volume-session state issues.
Now in SQL Server 2016, Fixed the issues and
trying to improved memory mgmt and Its also supporting foreign keys, check and
unique constraints and parallelism also.
Insert multiple level JSON data into SQL Server 2016 -
Now Native JSON support in SQL Server 2016 and it provides you some functions to read and parse your JSON object to table format.
1. The
OPENJSON () table value function transforms JSON
object to one or many rows. It will not execute any command. It just
returns a table row if JSON text is properly formatted. OPENJSON function will
also work with JSON arrays and this function can also open nested/hierarchical
JSON objects. OPENJSON will just return set of rows instead of a single row.
2. The
JSON_Value () is a scalar function
and used to returns a value from JSON on the specified path.
There are some specific examples for OPENJSON read nested JSON –
Example 1 – OPENJSON AND
JSON INPUT
DECLARE @json NVARCHAR(MAX)
SET @json=N'{
"Name":"Anil",
"Surname":"Singh",
"Age":32,
"Skills":["SQL","C#","MVC","Angular
2, 4 and 5"]
}'
SELECT * FROM OPENJSON(@json);
Result –
Example 2 – OPENJSON AND
JSON INPUT
DECLARE @json NVARCHAR(MAX)
set @json =N'[
{
"CREATE_DT": 3443434343,
"INCLUDEIND_IND": true,
"CREATE_BY":
"admin",
"DOMAIN_ID": "Cable
Length",
"UPDATE_BY": null,
"VISIBLE": true,
"SOURCE": "OSB",
"MIN_VALUE": 2,
"UPDATE_DT": null,
"VERSION": 1,
"MAX_VALUE": 10
},
{
"CREATE_DT": 34334343433,
"INCLUDEIND_IND": true,
"CREATE_BY": "admin",
"DOMAIN_ID":
"Number",
"UPDATE_BY": null,
"VISIBLE": true,
"SOURCE": "COB",
"MIN_VALUE": 1,
"UPDATE_DT": null,
"VERSION": 1,
"MAX_VALUE": 10
},
{
"CREATE_DT": 3434343,
"INCLUDEIND_IND": true,
"CREATE_BY":
"admin",
"DOMAIN_ID":
"Number_concurrent_access",
"UPDATE_BY": null,
"VISIBLE": true,
"SOURCE": "OCB",
"MIN_VALUE": 1,
"UPDATE_DT": null,
"VERSION": 1,
"MAX_VALUE": 5
}]'
CREATE TABLE TBL_ConvertJSONToTableObject(
CREATE_DT VARCHAR(30),
INCLUDEIND_IND VARCHAR(30),
CREATE_BY VARCHAR(30),
DOMAIN_ID VARCHAR(30) ,
UPDATE_BY VARCHAR(30) ,
VISIBLE VARCHAR(30) ,
SOURCE VARCHAR(30)
,
MIN_VALUE VARCHAR(30) ,
UPDATE_DT VARCHAR(30) ,
VERSION VARCHAR(30) ,
MAX_VALUE VARCHAR(30) ,
)
INSERT INTO TBL_ConvertJSONToTableObject (
CREATE_DT,
INCLUDEIND_IND,
CREATE_BY,
DOMAIN_ID,
UPDATE_BY,
VISIBLE ,
SOURCE ,
MIN_VALUE,
UPDATE_DT,
VERSION ,
MAX_VALUE
)
SELECT * FROM OPENJSON (@json)
WITH(
CREATE_DT VARCHAR(30) '$.CREATE_DT',
INCLUDEIND_IND VARCHAR(30) '$.INCLUDEIND_IND',
CREATE_BY VARCHAR(30) '$.CREATE_BY',
DOMAIN_ID VARCHAR(30) '$.DOMAIN_ID',
UPDATE_BY VARCHAR(30) '$.UPDATE_BY',
VISIBLE VARCHAR(30) '$.VISIBLE',
SOURCE VARCHAR(30) '$.SOURCE',
MIN_VALUE VARCHAR(30) '$.MIN_VALUE',
UPDATE_DT VARCHAR(30) '$.UPDATE_DT',
VERSION VARCHAR(30) '$.VERSION',
MAX_VALUE VARCHAR(30) '$.MAX_VALUE'
)
SELECT * FROM
TBL_ConvertJSONToTableObject
Result –
Example 3 – USING
JSON_VALUE() WITH OPENJSON() FUNCTION
DECLARE @json NVARCHAR(1000)
SELECT @json = N'{
"Orders": [
{
"OrderID": 10100,
"CustomerID": 202000,
"OrderDetail": [{
"ProductID": 302000,
"UnitPrice": 4350
},
{
"ProductID": 203000,
"UnitPrice": 4450
},
{
"ProductID": 43000,
"UnitPrice": 5560
}]
}]
}'
SELECT JSON_Value (c.value, '$.OrderID') as OrderID,
JSON_Value (c.value, '$.CustomerID') as CustomerID,
JSON_Value (p.value, '$.ProductID') as ProductID,
JSON_Value (p.value, '$.UnitPrice') as UnitPrice
FROM OPENJSON (@json, '$.Orders') as c
CROSS APPLY OPENJSON (c.value, '$.OrderDetail') as p
Result –
Now you can download SQL Server 2016 from given
below link