Bestemt IKKE :
-
TEXT, NTEXT:disse typer er udfasede fra SQL Server 2005 og bør ikke bruges til nyudvikling. BrugVARCHAR(MAX)ellerNVARCHAR(MAX)i stedet -
IMAGE,VARBINARY(MAX):IMAGEer forældet ligesomTEXT/NTEXT, og der er virkelig ingen mening i at gemme en tekststreng i en binær kolonne...
Så det efterlader grundlæggende VARCHAR(x) eller NVARCHAR(x) :VARCHAR gemmer ikke-Unicode-strenge (1 byte pr. tegn) og NVARCHAR gemmer alt i en Unicode-tilstand på 2 byte pr. tegn. Så har du brug for Unicode? Har du muligvis arabiske, hebraiske, kinesiske eller andre ikke-vesteuropæiske tegn i dine strenge? Gå derefter med NVARCHAR
(N)VARCHAR kolonner kommer i to varianter:enten definerer du en maksimal længde, der resulterer i 8000 bytes eller mindre (VARCHAR op til 8000 tegn, NVARCHAR op til 4000), eller hvis det ikke er nok, brug (N)VARCHAR(MAX) versioner, som gemmer op til 2 GByte data.
Opdatering: SQL Server 2016 vil have indbygget JSON-understøttelse - en ny JSON datatype (som er baseret på nvarchar ) vil blive introduceret, samt en FOR JSON kommando til at konvertere output fra en forespørgsel til JSON-format
Opdatering #2: i det endelige produkt inkluderede Microsoft ikke en separat JSON datatype - i stedet er der en række JSON-funktioner (for at pakke databaserækker ind i JSON eller at parse JSON til relationelle data), som fungerer på kolonner af typen NVARCHAR(n)