Book Image

SQL Server 2016 Developer's Guide

By : Miloš Radivojević, Dejan Sarka, William Durkin
Book Image

SQL Server 2016 Developer's Guide

By: Miloš Radivojević, Dejan Sarka, William Durkin

Overview of this book

Microsoft SQL Server 2016 is considered the biggest leap in the data platform history of the Microsoft, in the ongoing era of Big Data and data science. This book introduces you to the new features of SQL Server 2016 that will open a completely new set of possibilities for you as a developer. It prepares you for the more advanced topics by starting with a quick introduction to SQL Server 2016's new features and a recapitulation of the possibilities you may have already explored with previous versions of SQL Server. The next part introduces you to small delights in the Transact-SQL language and then switches to a completely new technology inside SQL Server - JSON support. We also take a look at the Stretch database, security enhancements, and temporal tables. The last chapters concentrate on implementing advanced topics, including Query Store, column store indexes, and In-Memory OLTP. You will finally be introduced to R and learn how to use the R language with Transact-SQL for data exploration and analysis. By the end of this book, you will have the required information to design efficient, high-performance database applications without any hassle.
Table of Contents (21 chapters)
SQL Server 2016 Developer's Guide
Credits
About the Authors
About the Reviewer
www.PacktPub.com
Customer Feedback
Preface
12
In-Memory OLTP Improvements in SQL Server 2016

Validating JSON data


To validate JSON, you can use the ISJSON function. This is a scalar function and checks whether the input string is valid JSON data. The function has one input argument:

  • string: This is an expression of any string data type, except text and ntext

The return type of the function is int, but only three values are possible:

  • 1 if the input string is JSON conforming

  • 0 if the input string is not valid JSON data

  • NULL if the input expression is NULL

The following statement checks whether the input variable is JSON valid:

SELECT  
  ISJSON ('test'),  
  ISJSON (''),  
  ISJSON ('{}'),  
  ISJSON ('{"a"}'),  
  ISJSON ('{"a":1}'), 
  ISJSON ('{"a":1"}');

Here is the output:

------ ------ ------ ------ ------ ------
0      0      1      0      1      0

ISJSON does not check the uniqueness of keys at the same level. Therefore, this JSON data is valid:

SELECT ISJSON ('{"id":1, "id":"a"}') AS is_json; 

It returns:

is_json
-----------
1

Since there is...