Obtenir la valeur de l'object JSON contient une colonne de table à l'aide de SQL Query

J'ai une table Books avec deux colonnes Id , BookCategory dans une database SQL Server, où Id est la key primaire et BookCategory contient un object JSON.

Cette ma table Livres

BookCategory d'get la valeur de colonne de BookCategory table en BookCategory que Category seulement. Pour cela, j'ai écrit la requête SQL suivante mais je n'ai pas eu. N'importe qui a une idée sur le point d'get la valeur de l'object JSON comme valeur de colonne normale comme résultat de la requête.

 SELECT Id, BookCategory.Name AS Name, BookCategory.Category AS Category FROM Books 

Donc le résultat ressemblera à:

 Id=1 Name=CA Category=cs 

Et j'obtiens une erreur dans SQL Server Management Studio:

L'identificateur en plusieurs parties "BookCategory.Name" n'a pas pu être lié.

Toute aide pour get le même résultat de la table ci-dessus Livres.

Merci d'avance.

CA devrait etre

 SELECT Id, JSON_VALUE(BookCategory,'$.Name') AS Name, JSON_VALUE(BookCategory,'$.Category') AS Category FROM Books 

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

Vous devez utiliser des fonctions spéciales pour travailler avec JSON dans SQL (JSON est pris en charge dans MS-SQL 2016). Table.column notation Table.column est pour les types de colonnes SQL standard tels que INTEGER ou VARCHAR etc.