Vejamos um exemplo
A palavra "Nova Zelândia" foi registrada no banco com collate em Latin1_General_CI_AI . Ao exportamos estes dados para uma outra base onde o collate padrão seja SQL_Latin1_General_CP850_CI_AI, iremos visualizar a mesma palavra desta forma "Nova Zel?ndia"
Você pode evitar esse tipo de transtorno antes de exportar ou migrar os dados, mas antes verifique o collate da base de destino, executando o comando SP_HELPDB no Query Analizer, na a coluna status poderá ser visto o collate que está sendo usado,

Para alterar o collate padrão da base, precisamos antes ajustar o banco para o modo "SINGLE_USER", caso contrário teremos a mensagem de erro "The database could not be exclusively locked to perform the operation".
veja os comandos;
ALTER DATABASE NOMEBANCO SET SINGLE_USER WITH ROLLBACK IMMEDIATE
ALTER DATABASE NOMEBANCO COLLATE NOVO_COLLATION
ALTER DATABASE NOMEBANCO SET MULTI_USER
Explicando o código:
1º linha altera o banco para o modo "single_user"
2º linha modifica o Collate para Latin1_General_CI_AI
3º linha é redefinido o banco para o modo "multi_user"
Executando no Query Analizer teremos assim:

A mensagem "Nonqualified transactions are being rolled back. Estimated rollback completion: 100%." significa que o procedimento foi efetuado com sucesso.
Agora é possível exportar ou migrar os dados de uma base para outra sem que tenhamos problemas com acentuação.
Lembrando que este procedimento irá alterar o collate do banco de dados. Na criação de novas tabelas estará com o novo collation definido, porém as tabelas já existentes permanecerão com o collation anterior.
Imprimir
Indique
Conpartilhe este link
RSS
del.icio.ous
Digg
My Yahoo
Techonorati
FaceBook
Edgarweb
Aguarde estamos gravando seu comentário ...



