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. UtilisezVARCHAR(MAX)
ouNVARCHAR(MAX)
à la place -
IMAGE
,VARBINARY(MAX)
:IMAGE
est obsolète, tout commeTEXT/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)