Ciertamente NO :
-
TEXT, NTEXT:esos tipos están en desuso a partir de SQL Server 2005 y no debe usarse para nuevos desarrollos. UsaVARCHAR(MAX)oNVARCHAR(MAX)en cambio -
IMAGE,VARBINARY(MAX):IMAGEestá en desuso al igual queTEXT/NTEXT, y realmente no tiene sentido almacenar una cadena de texto en una columna binaria....
Eso básicamente deja VARCHAR(x) o NVARCHAR(x) :VARCHAR almacena cadenas no Unicode (1 byte por carácter) y NVARCHAR almacena todo en un modo Unicode de 2 bytes por carácter. Entonces, ¿necesitas Unicode? ¿Posiblemente tiene caracteres árabes, hebreos, chinos u otros caracteres no europeos occidentales en sus cadenas? Luego ve con NVARCHAR
El (N)VARCHAR las columnas vienen en dos tipos:o bien define una longitud máxima que da como resultado 8000 bytes o menos (VARCHAR hasta 8000 caracteres, NVARCHAR hasta 4000), o si eso no es suficiente, use el (N)VARCHAR(MAX) versiones, que almacenan hasta 2 GByte de datos.
Actualización: Servidor SQL 2016 tendrá soporte JSON nativo - un nuevo JSON tipo de datos (que se basa en nvarchar ), así como un FOR JSON comando para convertir la salida de una consulta en formato JSON
Actualización n.º 2: en el producto final, Microsoft no incluyó un JSON separado tipo de datos:en cambio, hay una serie de funciones JSON (para empaquetar filas de bases de datos en JSON, o para analizar JSON en datos relacionales) que operan en columnas de tipo NVARCHAR(n)