Zeker NIET :
-
TEXT, NTEXT
:deze typen zijn verouderd vanaf SQL Server 2005 en mag niet worden gebruikt voor nieuwe ontwikkeling. GebruikVARCHAR(MAX)
ofNVARCHAR(MAX)
in plaats daarvan -
IMAGE
,VARBINARY(MAX)
:IMAGE
is verouderd, net alsTEXT/NTEXT
, en het heeft echt geen zin om een tekstreeks in een binaire kolom op te slaan....
Dus dat laat in feite VARCHAR(x)
. over of NVARCHAR(x)
:VARCHAR
slaat niet-Unicode-tekenreeksen op (1 byte per teken) en NVARCHAR
slaat alles op in een 2-byte-per-teken Unicode-modus. Dus heb je Unicode nodig? Heb je mogelijk Arabische, Hebreeuwse, Chinese of andere niet-West-Europese karakters in je strings? Ga dan met NVARCHAR
De (N)VARCHAR
kolommen zijn er in twee smaken:ofwel definieert u een maximale lengte die resulteert in 8000 bytes of minder (VARCHAR
tot 8000 tekens, NVARCHAR
tot 4000), of als dat niet genoeg is, gebruik dan de (N)VARCHAR(MAX)
versies, die tot 2 GByte aan gegevens opslaan.
Bijwerken: SQL Server 2016 zal native JSON-ondersteuning hebben - een nieuwe JSON
datatype (dat is gebaseerd op nvarchar
) zal worden geïntroduceerd, evenals een FOR JSON
opdracht om uitvoer van een query naar JSON-indeling te converteren
Update #2: in het uiteindelijke product heeft Microsoft geen aparte JSON
datatype - in plaats daarvan zijn er een aantal JSON-functies (om databaserijen in JSON te verpakken, of om JSON te ontleden in relationele gegevens) die werken op kolommen van het type NVARCHAR(n)