Sqlserver
 sql >> Base de Dados >  >> RDS >> Sqlserver

Qual é o melhor tipo de dados SQL para armazenar string JSON?


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. Use VARCHAR(MAX) ou NVARCHAR(MAX) em vez de

  • IMAGE , VARBINARY(MAX) :IMAGE está obsoleto assim como TEXT/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)