Certamente NÃO :
-
TEXT, NTEXT:esses tipos estão obsoletos a partir do SQL Server 2005 e não deve ser usado para novos desenvolvimentos. UseVARCHAR(MAX)ouNVARCHAR(MAX)em vez de
-
IMAGE,VARBINARY(MAX):IMAGEestá obsoleto assim comoTEXT/NTEXT, e não faz sentido armazenar uma string de texto em uma coluna binária....
Então isso basicamente deixa
VARCHAR(x) ou NVARCHAR(x) :VARCHAR armazena strings não Unicode (1 byte por caractere) e NVARCHAR armazena tudo em um modo Unicode de 2 bytes por caractere. Então você precisa de Unicode? Você tem caracteres árabes, hebraicos, chineses ou outros caracteres não europeus ocidentais em suas strings, potencialmente? Então vá com NVARCHAR O
(N)VARCHAR as colunas vêm em dois tipos:ou você define um comprimento máximo que resulta em 8000 bytes ou menos (VARCHAR até 8000 caracteres, NVARCHAR até 4000), ou se isso não for suficiente, use o (N)VARCHAR(MAX) versões, que armazenam até 2 GByte de dados. Atualização: SQL Server 2016 terá suporte nativo a JSON - um novo
JSON tipo de dados (que é baseado em nvarchar ) será introduzido, bem como um FOR JSON comando para converter a saída de uma consulta em formato JSON Atualização nº 2: no produto final, a Microsoft não incluiu um
JSON separado tipo de dados - em vez disso, há várias funções JSON (para empacotar linhas de banco de dados em JSON ou analisar JSON em dados relacionais) que operam em colunas do tipo NVARCHAR(n)