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)
:IMAGE
er 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)