SQL SERVER – Understanding JSON NULL Value Using STRICT Keyword

Playing around with the new capability of SQL Server 2016 has been a fun journey. Even after a year, the discovery keeps happening every single day that I work with it. When I wrote the post around NULL values getting returned, lesser did I know there have been folks who work on this feature.  Let us learn in this blog post about JSON NULL Value Using STRICT Keyword. Do make sure to read the other blog too: SQL SERVER – Understanding JSON Use is Case-Sensitive

Some of the answers provided got me interested in posting the next in the series. This was a learning for me too. While using JSON, there is a keyword that can-do magic, it is called as STRICT. The same code which was earlier used in the blog has been modified to use this keyword. The same code would look like:

	"Name": "Pinal",
	"Surname": "Kumar",
	"Birth": {"DOB":"2000-12-12" , "Town":"Gandhi Nagar", "Country":"India"}
SELECT JSON_VALUE(@myjson, 'strict $.name')

Msg 13608, Level 16, State 5, Line 1
Property cannot be found on the specified JSON path.

As you can we no longer get the NULL value as discussed before. We are getting an explicit error that represents the actual problem.

SQL SERVER - Understanding JSON NULL Value Using STRICT Keyword JSON-using-strict-01-800x183

While I was trying to play around with the NULL value, I figured out when the value returned string is larger than VARCHAR (4000), then there would be an error while using the STRICT keyword.

Msg 13625, Level 16, State 1, Line 1
String value in the specified JSON path would be truncated.

The learning never stops working with SQL Server. Do let me know how you are using JSON datatypes? Let us know via comments.

Reference: Pinal Dave (https://blog.sqlauthority.com)

JSON, SQL Error Messages, SQL Scripts, SQL Server
Previous Post
SQL SERVER – Script level upgrade for database master failed – Error: 4860, Severity: 16, State: 1 – Cannot bulk load. SqlTraceCollect.dtsx does not exist
Next Post
SQL SERVER – Error Msg 10778, Level 16 with InMemory OLTP

Related Posts

1 Comment. Leave new

    “Name”: “\\\resurvey-new\LpmApplicationImages\MUT_Test_15042023033518.Jpeg”,
    “Surname”: “Kumar”,
    “Birth”: {“DOB”:”2000-12-12″ , “Town”:”Gandhi Nagar”, “Country”:”India”}
    SELECT JSON_VALUE(@myjson, ‘strict $.Name’)


Leave a Reply