Určitě NE :
-
TEXT, NTEXT
:tyto typy jsou zastaralé od SQL Server 2005 a neměl by být používán pro nový vývoj. PoužijteVARCHAR(MAX)
neboNVARCHAR(MAX)
místo -
IMAGE
,VARBINARY(MAX)
:IMAGE
je zastaralé stejně jakoTEXT/NTEXT
a opravdu nemá smysl ukládat textový řetězec do binárního sloupce....
Takže v podstatě zbývá VARCHAR(x)
nebo NVARCHAR(x)
:VARCHAR
ukládá řetězce, které nejsou Unicode (1 bajt na znak) a NVARCHAR
ukládá vše v režimu Unicode 2 bajty na znak. Takže potřebujete Unicode? Máte ve svých řetězcích arabské, hebrejské, čínské nebo jiné nezápadoevropské znaky? Poté přejděte pomocí NVARCHAR
(N)VARCHAR
sloupce mají dvě varianty:buď definujete maximální délku, která má za následek 8000 bajtů nebo méně (VARCHAR
až 8000 znaků, NVARCHAR
až 4000), nebo pokud to nestačí, použijte (N)VARCHAR(MAX)
verze, které ukládají až 2 GB dat.
Aktualizace: SQL Server 2016 bude mít nativní podporu JSON – nový JSON
datový typ (který je založen na nvarchar
) a také FOR JSON
příkaz pro převod výstupu z dotazu do formátu JSON
Aktualizace č. 2: ve finálním produktu Microsoft nezahrnul samostatný JSON
datový typ – místo toho existuje řada funkcí JSON (pro zabalení řádků databáze do JSON nebo pro analýzu JSON do relačních dat), které pracují se sloupci typu NVARCHAR(n)