JSON-support binnen SQL Server 2016 en Azure SQL Databases

Binnen SQL Server 2016 en Azure SQL Databases kun je dankzij ‘JSON-support’ gebruikmaken van JSON door het op te slaan als (N)VARCHAR(xxx). Ondersteunend hieraan heeft Microsoft enkele functies toegevoegd, welke je kunt gebruiken:

Extract values from JSON text and use them in queries
If you have JSON text that’s stored in database tables, you can use built-in functions to read or modify values in the JSON text.
 
Use the JSON_VALUE function to extract a scalar value from a JSON string.
Use JSON_QUERY to extract an object or an array from a JSON string.
Use the ISJSON function to test whether a string contains valid JSON.
Use the JSON_MODIFY function to change a value in a JSON string.

Microsoft zelf hint op ‘JSON-support’, ze hebben helaas géén JSON-datatype geïntroduceerd. Op het eerste gezicht geen probleem, maar je moet dus zelf de JSON-structuur valideren. Dit kun je doen op het moment van selecteren m.b.v. ISJSON() óf tijdens het inserten/updaten d.m.v. een SQL Trigger + ISJSON(). Voor de performance is dit een dikke plus, daarnaast gaat het queryen van JSON-data stukken sneller dan dat van XML-data.

 

Al met al een leuke toevoeging en zeker niet geheel onbelangrijk, JSON is immers de nieuwe standaard…bye bye little dirty XML :)

JSON in SQL Server 2016
JSON in SQL Server 2016


 


 


 


 


 

Bron: https://azure.microsoft.com/nl-nl/blog/json-support-is-generally-available-in-azure-sql-database/

 

Hoe kun je de JSON-data nu bevragen zoals dat zo mooi heet? Eigenlijk erg simpel, het werkt als een soort gelaagde structuur:

Import JSON data into SQL Server tables
Import JSON data into SQL Server tables

 


 


 


 


 


 


 


 


 


 


 


 


 


 

Bron: https://docs.microsoft.com/en-us/sql/relational-databases/json/json-data-sql-server

Meer informatie:
https://www.sqlshack.com/native-json-support-in-sql-server-2016/
https://blogs.technet.microsoft.com/dataplatforminsider/2016/01/05/json-in-sql-server-2016-part-1-of-4/

 


 

Geef een reactie

Het e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *