Probleminhas na instalação do SQL Server 2008

Estou instalando o recém lançado SQL Server 2008, mas tudo indica que ele vem com alguns probleminhas na instalação.

Se você usa Windows Vista instalado originalmente não em inglês, pode ter problemas na instalação. Na hora de rodas o check de instalação recebe um erro:

Setup Sql Server 2008 - configuration checker com erro

Pois bem, pesquisei em alguns lugares e percebi que o problema rola faz tempo, mas mesmo assim não foi resolvido ainda. Segui o recomendado no fórum, mas não resolveu o problema. A idéia seria pegar o ID da lingua de instalação do seu windows, e adicionar ela no registro.

Para pegar esse ID, seria só rodar:

string.Format("{0,3}", CultureInfo.InstalledUICulture.Parent.LCID.ToString("X")).Replace(" ", "0"); 

Para mim retorna 016.

E adicionar ao registro:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Perflib

Ficaria assim:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Perflib\016

Copiando os valores “Counter” e “Help” de alguma outra chave, tipo a 009, para essa nova chave.

Pois bem, fiz isso, não rolou. Estou postando aqui o que fiz para resolver, porque vocês podem ter o mesmo problema.

Por causa da dica no Microsoft Connect colocada por um chinês, fiz um trace do problema à dll Microsoft.SqlServer.Configuration.SetupExtension.dll. O método CheckPerfMonCounter da classe FacetPerfMonCheck, faz uma rotina um pouco diferente da esplicada nos fóruns. Copiei e rodei. Resultado: 0416. Eu já tinha essa chave no meu registro, foi só acrescentar e copiar os valores “Counter” e “Help”:

Registry Editor - após alteração

E funcionou. Sem grandes stress. Mas teve que investigar…

A função para saber o id da sua lingua é a seguinte:

string name = @"SOFTWARE\Microsoft\Windows NT\CurrentVersion\Perflib";
string str2 = null;
int major = Environment.OSVersion.Version.Major;
int lCID = CultureInfo.InstalledUICulture.LCID;
if ((major >= 6) && (((lCID == 0x404) || (lCID == 0x804)) || (lCID == 0x416)))
{
    str2 = string.Format("{0,4}", lCID.ToString("X")).Replace(" ", "0");
}
else if (0x7c04 == CultureInfo.InstalledUICulture.Parent.LCID)
{
    str2 = "004";
}
else
{
    str2 = string.Format("{0,3}", CultureInfo.
           InstalledUICulture.Parent.LCID.ToString("X")).Replace(" ", "0");
}

 

Rode isso, o valor retornar em str2 é a chave que você precisa. Pelo que eu entendi, tem um tratamento especial para o Português brasileiro, que é o 0×416 em Hexa. Se for esse, ele chama a linha 7, senão ele chama a linha 15. O segundo elseif deve ser o do inglês, que retorna 004.

Enfim, espero que ajude quem está no enrosco nessa instalação.

  • GUI

    Acho que estou com o mesmo problema. Estou tentando usar o PaintBrush no Windows 3.1 mas não tá rolando.

  • JG

    Também tive o mesmo problema com o Vista 32 SP1 versão PT de Portugal, e utilizei a tua solução para a minha versão deu o valor 016.
    Obrigado o teu blog já está nos meus favoritos.

  • cpereira

    Tive o mesmo problema com Vista 32, utilizei a solução apresentada e resolveu o problema. Muito obrigado

  • Ronaldo

    Estou Com Este Erro no Finnal da Instalação
    Estou tentando instalar o SQL SERVER 2008 NO WINDOWS SERVER 2003 SP 2 FRAMEWORK 3.5 SP1 WI 4.5
    não foi possivel encontrar o identificador de inicialização do mecanismo do banco dados

  • Paulo

    Como se vê, se não for um especialista simplesmente não se consegue instalar essa "maravilha" da Microsoft. Alguém, como eu, que é somente um iniciante, jamais conseguirá instalar o SQL 2008 Express. Já formatei minha máquina, instalei todos os programas requeridos e nada feito. Continua aparecendo alguma mensagem indecifrável e, o pior, sem qualquer mostrar nenhum caminho para a solução. Vou desistir.

  • rafael

    eu estou com o mesmo problema no windows 2008 e nao consigo resouver .

    sera q alguem poderia dar alguma dica de como resouver isso ? ?

  • eddiegleyson

    por favor mim ajudem estou com problema na instalacao do sql server 2008 manag no arquivo microsoft.net mim digào o que fazer eu rodo o win7 ultimate 64 bit eu ja tinha instalado antes e tinha dado certo so que dessa vez deu erro

  • Janilton Barros

    estou com o problema de que quando vou instalar ele pede pra reiniciar e eu reinicio, mais sempre aparece a mesma msg pedindo pra reiniciar. alguém tem a solução ?