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

Qual é a diferença entre varchar e nvarchar?


Um nvarchar coluna pode armazenar qualquer dado Unicode. Um varchar coluna é restrita a uma página de código de 8 bits. Algumas pessoas pensam que varchar deve ser usado porque ocupa menos espaço. Acredito que esta não seja a resposta correta. As incompatibilidades de página de código são uma dor, e o Unicode é a cura para problemas de página de código. Com disco e memória baratos hoje em dia, não há realmente nenhuma razão para perder tempo mexendo com páginas de código.

Todos os sistemas operacionais e plataformas de desenvolvimento modernos usam Unicode internamente. Usando nvarchar em vez de varchar , você pode evitar fazer conversões de codificação toda vez que ler ou gravar no banco de dados. As conversões levam tempo e são propensas a erros. E a recuperação de erros de conversão é um problema não trivial.

Se você estiver fazendo interface com um aplicativo que usa apenas ASCII, eu ainda recomendaria usar Unicode no banco de dados. Os algoritmos de agrupamento do sistema operacional e do banco de dados funcionarão melhor com Unicode. Unicode evita problemas de conversão ao fazer interface com outros sistemas. E você estará se preparando para o futuro. E você sempre pode validar se seus dados estão restritos a ASCII de 7 bits para qualquer sistema legado que você precise manter, mesmo enquanto desfruta de alguns dos benefícios do armazenamento Unicode completo.