Absolut INTE :
-
TEXT, NTEXT:dessa typer är utfasade från och med SQL Server 2005 och bör inte användas för nyutveckling. AnvändVARCHAR(MAX)ellerNVARCHAR(MAX)istället -
IMAGE,VARBINARY(MAX):IMAGEär utfasad precis somTEXT/NTEXT, och det är verkligen ingen idé att lagra en textsträng i en binär kolumn...
Så det lämnar i princip VARCHAR(x) eller NVARCHAR(x) :VARCHAR lagrar icke-Unicode-strängar (1 byte per tecken) och NVARCHAR lagrar allt i ett Unicode-läge med 2 byte per tecken. Så behöver du Unicode? Har du eventuellt arabiska, hebreiska, kinesiska eller andra icke-västeuropeiska tecken i dina strängar? Gå sedan med NVARCHAR
(N)VARCHAR kolumner finns i två varianter:antingen definierar du en maximal längd som resulterar i 8000 byte eller mindre (VARCHAR upp till 8000 tecken, NVARCHAR upp till 4000), eller om det inte räcker, använd (N)VARCHAR(MAX) versioner, som lagrar upp till 2 GByte data.
Uppdatering: SQL Server 2016 kommer att ha inbyggt JSON-stöd - en ny JSON datatyp (som är baserad på nvarchar ) kommer att introduceras, liksom en FOR JSON kommando för att konvertera utdata från en fråga till JSON-format
Uppdatering #2: i slutprodukten inkluderade Microsoft inte en separat JSON datatype - istället finns det ett antal JSON-funktioner (för att paketera databasrader till JSON, eller för att analysera JSON till relationsdata) som fungerar på kolumner av typen NVARCHAR(n)