none
Alterar o Server Collation do 2008 R2 RRS feed

  • 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.

     

    sexta-feira, 10 de dezembro de 2010 11:43

Respostas

  • Joaquim,

    Tente executar o mesmo script, porém execute o prompt de comando como Administrador.

    Atenciosamente,


    MCTS - SQL Server 2008, Implementation and Maintenance
    domingo, 12 de dezembro de 2010 12:56

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).

    http://www.mcdbabrasil.com.br/imagens/restormaster/stopsql.jpg

    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" .

    http://www.mcdbabrasil.com.br/imagens/collate/collate_parametros.jpg

    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 .

    http://www.mcdbabrasil.com.br/imagens/collate/collate_alterando.jpg

    5. Ao final do processo tecle Ctrl+C e reinicie os serviços do SQL Server. Por exemplo utilizando o SQL Server Service Manager.

    http://www.mcdbabrasil.com.br/imagens/collate/collate_final.jpg

    Para exemplificar, alterei o collate de SQL_Latin1_General_Cp1_CI_AI para SQL_Latin1_General_Cp1_CS_AS

    http://www.mcdbabrasil.com.br/imagens/collate/collate_antes.jpg

    http://www.mcdbabrasil.com.br/imagens/collate/collate_apos.jpg

    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.
    sexta-feira, 10 de dezembro de 2010 12:10
  • da erro...
    2010-12-10 09:45:40.94 Server      Error: 17058, Severity: 16, State: 1.
    2010-12-10 09:45:40.94 Server      initerrlog: Could not open error log file ''. Operating system error = 3(The system cannot find the path specified.).

     

    sexta-feira, 10 de dezembro de 2010 12:49
  • Qual é o seu collation atual e para qual vc quer mudar?

     

    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.
    sexta-feira, 10 de dezembro de 2010 14:12
  • Atual: SQL_Latin1_General_CP1_CI_AS

    Para: Latin1_General_CI_AI

    sexta-feira, 10 de dezembro de 2010 14:17
  • 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.
    sexta-feira, 10 de dezembro de 2010 21:29
  • domingo, 12 de dezembro de 2010 11:39
  • Joaquim,

    Tente executar o mesmo script, porém execute o prompt de comando como Administrador.

    Atenciosamente,


    MCTS - SQL Server 2008, Implementation and Maintenance
    domingo, 12 de dezembro de 2010 12:56
  • Valeu pessoal..a dica do Marco estava certa..só faltava executar com administrador, apesar que o meu login era de administrador.

    Grato por todos...

    Abraços

     

    domingo, 12 de dezembro de 2010 21:42