Sqlserver
 sql >> Base de données >  >> RDS >> Sqlserver

Quel est le meilleur type de données SQL pour stocker la chaîne JSON ?

Certainement PAS :

  • TEXT, NTEXT  :ces types sont obsolètes à partir de SQL Server 2005 et ne doit pas être utilisé pour un nouveau développement. Utilisez VARCHAR(MAX) ou NVARCHAR(MAX) à la place

  • IMAGE , VARBINARY(MAX) :IMAGE est obsolète, tout comme TEXT/NTEXT , et il n'y a vraiment aucun intérêt à stocker une chaîne de texte dans une colonne binaire....

Donc, cela laisse essentiellement VARCHAR(x) ou NVARCHAR(x) :VARCHAR stocke les chaînes non Unicode (1 octet par caractère) et NVARCHAR stocke tout en mode Unicode à 2 octets par caractère. Alors, avez-vous besoin d'Unicode ? Avez-vous potentiellement des caractères arabes, hébreux, chinois ou d'autres caractères non européens dans vos chaînes ? Allez ensuite avec NVARCHAR

Le (N)VARCHAR les colonnes se présentent sous deux formes :soit vous définissez une longueur maximale qui se traduit par 8 000 octets ou moins (VARCHAR jusqu'à 8000 caractères, NVARCHAR jusqu'à 4000), ou si cela ne suffit pas, utilisez le (N)VARCHAR(MAX) versions, qui stockent jusqu'à 2 Go de données.

Mise à jour : SQL Server 2016 aura un support JSON natif - un nouveau JSON type de données (basé sur nvarchar ) seront introduits, ainsi qu'un FOR JSON commande pour convertir la sortie d'une requête au format JSON

Mise à jour 2 : dans le produit final, Microsoft n'a pas inclus de JSON séparé type de données - à la place, il existe un certain nombre de fonctions JSON (pour regrouper les lignes de la base de données en JSON ou pour analyser JSON en données relationnelles) qui fonctionnent sur des colonnes de type NVARCHAR(n)