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):IMAGEis 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)