Você já teve dificuldades ao tentar desinstalar, atualizar ou substituir o SQL Server? Esses cenários podem ser frustrantes e impedir a instalação de uma nova versão ou o uso de uma instância específica. Neste artigo, exploraremos uma solução para desinstalar limparmente os componentes do SQL Server usando um comando integrado chamado msiexec.
O Problema
Há várias situações em que a desinstalação do SQL Server se torna difícil ou até mesmo impossível:
- Uma edição de avaliação expirada
- Um Management Studio expirado
- Um sistema operacional não suportado após uma atualização do SO
- Arquivos MSI ausentes
- Muitas instâncias para remover individualmente ou outros erros diversos durante a desinstalação
Esses problemas podem impedir a instalação de uma nova versão ou o uso de uma instância nomeada ou padrão específica do SQL Server.
A Solução
A solução para desinstalar limparmente os componentes do SQL Server é usar o comando msiexec com o parâmetro de desinstalação (-x). No entanto, antes de usar esse comando, você precisa obter os GUIDs que representam os programas que deseja remover.
Uma maneira de obter os GUIDs é pesquisando o registro, mas um método mais conveniente é usar a ferramenta MSI Inventory. Você pode baixar essa ferramenta de uma pasta OneDrive fornecida e extrair para uma pasta em seu computador.
Depois de ter a ferramenta MSI Inventory, abra um console do PowerShell e execute o seguinte código:
c:\temp\msiinv.exe -s | Select-String "SQL Server" -Context 0,1Esse código fornecerá uma lista de GUIDs associados a cada produto SQL Server instalado. Você pode então usar esses GUIDs para criar um conjunto de comandos que podem ser executados diretamente a partir da linha de comando para desinstalar os componentes desejados.
Aqui está um exemplo de como os comandos podem ser:
rem Microsoft SQL Server System CLR Types
msiexec /x "{C3F6F200-6D7B-4879-B9EE-700C0CE1FCDA}"
rem SQL Server 2014 Integration Services
msiexec /x "{327B1B40-2434-4DC5-9D4D-B9B24D4B2EDE}"
rem SQL Server 2014 SQL Data Quality Common
msiexec /x "{2D95D8C0-0DC4-44A6-A729-1E2388D2C03E}"
Você pode modificar essa lista para incluir ou excluir componentes específicos com base em suas necessidades.
Para automatizar a criação desses comandos, você pode usar um script do PowerShell fornecido por Allen White (@SQLRunr). Esse script irá gerar um arquivo em lote contendo os comandos para desinstalação.
Depois de ter o arquivo em lote, você pode revisar a lista de componentes e remover qualquer um que você não queira desinstalar. Em seguida, execute o arquivo em lote a partir da linha de comando para iniciar o processo de desinstalação.
Durante o processo de desinstalação, você pode encontrar prompts do Controle de Conta de Usuário e erros ou avisos de dependência. Para minimizar esses prompts, certifique-se de que todos os serviços relacionados tenham sido interrompidos manualmente. Você também pode executar o script a partir de um prompt de comando elevado e experimentar diferentes opções para o msiexec, como /quiet.
Pode ser necessário executar o script duas vezes para remover completamente os componentes que falharam na desinstalação na primeira vez devido à ordem de dependência. Na segunda execução, você pode ver notificações de que o produto que você está tentando remover não está mais instalado. No entanto, após executar o script duas vezes, você deve ter um Painel de Controle muito mais limpo.
Tenha em mente que esse procedimento pode não ser eficaz para remover completamente uma instância em cluster do SQL Server.
Conclusão
Desinstalar componentes do SQL Server às vezes pode ser uma tarefa desafiadora. Quando o Painel de Controle ou a Instalação do SQL Server não cooperam, usar o comando msiexec com os GUIDs apropriados pode fornecer uma solução. Embora essa abordagem exija um pouco mais de trabalho do que as operações normais de desinstalação, ela pode ajudá-lo a remover componentes obstinados do SQL Server de seus sistemas.
Lembre-se de ter cuidado e revisar a lista de componentes antes de executar o script de desinstalação. Com esse método, você pode retomar o controle sobre suas instalações do SQL Server e garantir um ambiente limpo para futuras instalações ou atualizações.