Usuário com melhor resposta
Alterar o Server Collation do 2008 R2

Pergunta
-
Pessoal, já pesquisei no forum e não encontrei.
Alguem sabe como alterar o collation da Instancia do Sql Server 2008 R2.
Os Banco que importai estão corretos mas da instancia está errado. Portanto, necessito alterar somente da instancia do Sql.
Encontrei como alterar do 2005 mas não funcionou e em outras respostas o link para a solução está quebrado.
Respostas
-
Joaquim,
Tente executar o mesmo script, porém execute o prompt de comando como Administrador.
Atenciosamente,
MCTS - SQL Server 2008, Implementation and Maintenance- Marcado como Resposta Joaquim Quintella domingo, 12 de dezembro de 2010 21:41
Todas as Respostas
-
Joaquim,
Existe uma forma bem prática, mas não oficial. O problema que vejo deste metodo é que ele altera TODAS as bases de uma instância.
Uma dúvida muito comum nos fóruns de discussões é: Como alterar o collate de um servidor ou banco de dados? Muitos optam por reinstalar o servido do zero, outros fazem um rebuild da master e demais bancos de sistema utilizando o utilitário rebuildm . A dica desta semana mostra como utilizar um procedimento não documentado para alterar o collate default do servidor de forma rápida e simples.
Nota: Ressalto que o procedimento apresentado aqui é um procedimento não documentado e sua execução é por sua conta e risco. O nosso colega Sérgio Monteiro (que foi quem postou esta solução no fórum do MSDN Brasil) disse já utilizar este procedimento a alguns anos e nunca teve problemas. No entanto, cada ambiente é um ambiente e não posso garantir que isto não lhe trará problemas futuros.Para tranqüilizar, só posso dizer que este é o mesmo procedimento utilizado pelo utilitário rebuildm.exe quando usado para alterar o collate do servidor. A grande diferença é que o utilitário além de alterar o collate também faz um rebuild do bancos de sistema, ou seja, tudo fica como se fosse uma nova instalação.
O interessante deste procedimento é que diferente do utilitário, ele apenas altera o collate default do servidor, o collate de todas as bases de dados (sistema e usuários), tabelas e respectivas colunas. Ao subir o SQL Server tudo estará absolutamente normal, com seus bancos e logins funcionando normalmente.
Como Executar o Procedimento
1. O primeiro passo é obviamente executar um bakup de todas as bases, incluindo as de sistema master ,msdb e model .
2. Pare o serviço do SQL Server. É possível usar vários métodos, um deles é parar os serviços usando o SQL Server Service Manager (ícone do SQL ao lado do relógio do Windows).
3. Abra um prompt de comando e navegue até o diretório de instalação do SQL Server. Localize o arquivo sqlservr.exe e execute sqlservr -m -T4022 -T3659 -q"novo_collate" .
Duas observações importantes: O -T deve ser maiúsculo e se a instalação o SQL Server estiver utilizando um nome de instância, a opção -s<nome_da_instância> deve ser adicionada.
4. Neste ponto o SQL Server será iniciado em single user mode e alterará o collate do servidor e todas as bases para o collate especificado na opção -q .
5. Ao final do processo tecle Ctrl+C e reinicie os serviços do SQL Server. Por exemplo utilizando o SQL Server Service Manager.
Para exemplificar, alterei o collate de SQL_Latin1_General_Cp1_CI_AI para SQL_Latin1_General_Cp1_CS_AS
Como pode ser visto nas imagens acima, se tiverem seguido os procedimentos de forma correta, neste momento o servidor, todas as bases, tabelas e respectivas colunas estarão com o novo collate.
Compatibilidade
O procedimento foi testado com sucesso no SQL Server 2000 e SQL Server 2005 . Embora não tenha sido testado com o SQL Server 7.0 , acredito que deva funcionar sem problemas.
Fonte: http://www.mcdbabrasil.com.br/modules.php?name=News&file=article&sid=244
A outra forma é atraves de importação de dados, só que é mais trabalhosa.
Att.,
Marco Antônio Pinheiro / MCTS - Database Developer 2008 http://marcoantoniopinheiro.blogspot.com Se o post foi útil, não esqueça de marcá-lo.- Sugerido como Resposta Marco Antônio Pinheiro domingo, 12 de dezembro de 2010 23:08
-
-
-
-
Joaquim,
A principio não teria problema com estes collations. Eu refiz o processo e funcionou no R2. Mande um print da tela do prompt antes de mandar executar o comando com todos os parametros digitados.
Att.,
Marco Antônio Pinheiro / MCTS - Database Developer 2008 http://marcoantoniopinheiro.blogspot.com Se o post foi útil, não esqueça de marcá-lo. -
-
Joaquim,
Tente executar o mesmo script, porém execute o prompt de comando como Administrador.
Atenciosamente,
MCTS - SQL Server 2008, Implementation and Maintenance- Marcado como Resposta Joaquim Quintella domingo, 12 de dezembro de 2010 21:41
-