Със сигурност НЕ :
-
TEXT, NTEXT
:тези типове са отхвърлени от SQL Server 2005 и не трябва да се използва за нова разработка. ИзползвайтеVARCHAR(MAX)
илиNVARCHAR(MAX)
вместо това -
IMAGE
,VARBINARY(MAX)
:IMAGE
е отхвърлен точно катоTEXT/NTEXT
, и наистина няма смисъл да съхранявате текстов низ в двоична колона....
Така че основно остава VARCHAR(x)
или NVARCHAR(x)
:VARCHAR
съхранява не-Unicode низове (1 байт на знак) и NVARCHAR
съхранява всичко в режим Unicode 2 байта на знак. И така, имате ли нужда от Unicode? Имате ли потенциално арабски, иврит, китайски или други незападноевропейски символи във вашите низове? След това отидете с NVARCHAR
(N)VARCHAR
колоните се предлагат в два вида:или дефинирате максимална дължина, която води до 8000 байта или по-малко (VARCHAR
до 8000 знака, NVARCHAR
до 4000), или ако това не е достатъчно, използвайте (N)VARCHAR(MAX)
версии, които съхраняват до 2 GByte данни.
Актуализация: SQL Server 2016 ще има собствена поддръжка на JSON - нов JSON
тип данни (който е базиран на nvarchar
), както и FOR JSON
команда за преобразуване на изход от заявка във формат JSON
Актуализация №2: в крайния продукт Microsoft не е включил отделен JSON
тип данни - вместо това има редица JSON-функции (за опаковане на редове от база данни в JSON или за анализиране на JSON в релационни данни), които работят с колони от тип NVARCHAR(n)