Muitos dos meus bancos de dados têm campos definidos como varchars. Isso não tem sido muito problemático desde que vivo e trabalho na América (onde o único idioma que existe é "americano". Ahem )
Depois de trabalhar com bancos de dados por aproximadamente 5 anos, descobri que acabei encontrando problemas com a natureza limitada do campo varchar e preciso modificar meus campos para armazenar dados como nvarchars. Depois de ter que fazer outra atualização em uma tabela, convertendo um campo varchar em um nvarchar, pensei: por que ainda estamos fazendo isso dessa maneira? Há muito que tomei a decisão mental de definir todos os novos campos de texto como nvarchar, em vez de varchar, que foi o que aprendi a fazer nos meus livros de texto quando estava na escola há 10 anos.
É 2011 e houve uma nova versão do SQL Server no ano passado. Por que continuamos a suportar um tipo de dados varchar quando podemos / devemos usar nvarchar?
Sei que muitas vezes se argumenta que os nvarchars são "duas vezes maiores" que os varchars; portanto, o uso do espaço de armazenamento pode ser um argumento para os principais varcars.
No entanto, os usuários de hoje podem definir seus nvarchars para armazenar os dados como UTF-8 em vez do UTF-16 padrão, se quiserem economizar espaço de armazenamento. Isso permitiria a codificação de 8 bits, se isso for principalmente desejável, enquanto garante que o caractere raro de 2 a 8 bytes inserido no banco de dados não quebraria nada.
Estou esquecendo de algo? Existe uma boa razão para que isso não tenha mudado nos últimos 15 a 20 anos?