Noções básicas sobre Unicode
O armazenamento de dados em vários idiomas em um banco de dados é difícil de administrar quando você usa apenas dados de caracteres e páginas de código. Também é difícil encontrar uma página de código para o banco de dados que possa armazenar todos os caracteres necessários específicos do idioma. Além disso, é difícil garantir a tradução correta de caracteres especiais, quando forem lidos ou atualizados por diferentes clientes executando várias páginas de código. Bancos de dados que oferecem suporte a clientes internacionais sempre deveriam usar tipos de dados Unicode em vez de tipos de dados não-Unicode.
Por exemplo, considere um banco de dados de clientes na América do Norte que deve lidar com três idiomas principais:
Nomes e endereços em espanhol para o México
Nomes e endereços em francês para Quebec
Nomes e endereços em inglês para o resto de Canadá e os Estados Unidos
Ao usar apenas colunas de caracteres e páginas de códigos, você deve tomar cuidado para ter certeza de que o banco de dados está instalado com uma página de código que lida com os caracteres dos três idiomas. Você deve também cuidar para garantir a tradução correta de caracteres especiais de um dos idiomas, quando forem lidos ou atualizados por clientes executando uma página de código para outro idioma.
Com o crescimento da Internet, está se tornando cada vez mais importante o suporte aos computadores de muitos clientes que estão sendo executados em diferentes localidades. A seleção de uma página de código para tipos de dados de caractere que ofereça suporte a todos os caracteres solicitados por um público mundial seria difícil.
A forma mais fácil de gerenciar dados de caractere em bancos de dados internacionais é sempre usar o Unicode nchar, nvarchar e tipos de dados nvarchar(max) em vez de seus equivalentes não Unicode, char, varchar e text.
O Unicode é um padrão para mapear pontos de código para caracteres. Porque é projetado para cobrir todos os caracteres de todos os idiomas do mundo, não necessita de páginas de código diferentes para lidar com os diferentes conjuntos de caracteres. O SQL Server oferece suporte ao Unicode Standard, versão 3.2.
Se todos os aplicativos que trabalham com bancos de dados internacionais também usarem variáveis Unicode em vez de variáveis não Unicode, as traduções de caracteres não precisarão ser executadas em nenhum lugar no sistema. Os clientes verão os mesmos caracteres nos dados como todos os outros clientes.
O SQL Server armazena todos os dados textuais de catálogo de sistema em colunas que têm tipos de dados Unicode. Os nomes de objetos de banco de dados, como tabelas, exibições e procedimentos armazenados, são armazenados em colunas Unicode. Isto habilita aplicativos para serem desenvolvidos só usando o Unicode e ajuda a evitar todos os problemas com conversões de página de código.