¿Cómo desinstalar SQL Server 2014 Standard Edition sin instalar medios?

9

He tenido una copia de SQL Server 2014 Standard instalada en mi cuadro de desarrollo como instancia predeterminada durante algunos años. Instalé el estándar en mi máquina porque tenía una licencia gratuita que podía usar a través de mi suscripción a MSDN. Ahora quiero desinstalar SQL Server 2014 y hacer que SQL Server 2017 Developer Edition sea mi instancia predeterminada. Traté de desinstalar SQL Server 2014 a través del flujo de trabajo estándar Agregar o quitar programas, pero después de preguntarme qué características quiero desinstalar, me pide el directorio que contiene los medios de desinstalación. Lamentablemente, no guardé el paquete de descarga de SQL Server 2014 que obtuve de MSDN y ya no tengo acceso a MSDN. También revisé Mi Visual Studio, pero solo se remonta a SQL Server 2016. ¿Cómo puedo desinstalar SQL Server 2014 Standard sin los medios de instalación?


Antecedentes adicionales:

Toda la razón por la que quiero desinstalar SQL Server 2014 es que quiero usar la STRING_AGGfunción que es nueva en Azure SQL Databases y SQL Server 2017. Para facilitar la configuración de entornos de desarrollo, usamos la notación de puntos para nuestras cadenas de conexión de desarrollo de entorno local, por ejemplo nuestra cadena de conexión es:

Data Source=.;Initial Catalog=<Database Name>;Trusted_Connection=True;Connection Timeout=30; 

La notación de puntos se conecta a la base de datos predeterminada, y que yo sepa, no puedo hacer que SQL Server 2017 sea la base de datos predeterminada sin desinstalar primero SQL Server 2014. Si puedo usar la cadena de conexión de notación de puntos para conectarme a SQL Server 2017 sin desinstalar SQL Server 2014, entonces también estaría abierto a esa solución.

Erik
fuente

Respuestas:

10

Pude desinstalar mi instancia de SQL Server 2014 descargando la versión de evaluación de SQL Server 2014 *. Para descargar la versión de evaluación, tuve que dar a Microsoft algunos detalles de contacto y luego descargar dos archivos. Un archivo tenía una .boxextensión y el otro tenía una .exeextensión. El ejecutable parecía simplemente descomprimir el archivo de la caja. Después de desempaquetar el archivo box, reinicié el proceso de desinstalación de SQL Server 2014 a través del flujo de trabajo estándar Agregar o quitar programas. Tenga en cuenta que nunca intenté instalar la versión de evaluación. Acabo de usar los archivos desempaquetados para desinstalar mi instancia existente de SQL Server 2014.

Elegí desinstalar los componentes de la base de datos pero dejé los componentes compartidos. Una vez que el proceso de desinstalación comenzó a solicitar los medios de instalación, descubrí que pediría varios .msiarchivos. La mayoría de las veces pediría un archivo msi con "loc" en el nombre del archivo seguido de un archivo msi sin "loc" en el nombre del archivo. Dentro de la carpeta en la que descomprimí el archivo box, se encontraba la versión "loc" de los archivos msi:

\1033_ENU_LP\x64\Setup\

y se ubicaron los archivos sin "loc" en el nombre del archivo:

\x64\Setup\

Después de completar el proceso de desinstalación, reinicié mi computadora y pude instalar SQL Server 2017 Developer Edition como la instancia predeterminada. Curiosamente, durante el proceso de instalación de SQL Server 2017, se me solicitaron los medios de instalación para 2 archivos de SQL Server 2014, uno de los cuales fue SQLWRITER.MSI. No sé si esto se debe a que no desinstalé los componentes compartidos para SQL Server 2014. Si esto me da problemas en el futuro debido a la naturaleza de tiempo limitado de la versión de evaluación de SQL Server 2014, solía desinstalar mi antiguo SQL Server 2014 Standard Edition Actualizaré esta respuesta.


Enfoques alternativos que se mencionaron en comentarios que no probé, pero que parecen ser buenas medidas alternativas

  1. Toda la razón por la que quería desinstalar SQL Server 2014 fue para poder usar la notación de puntos para conectarme a SQL Server 2017. Scott Hodgin me recomendó investigar una técnica para hacer que una instancia con nombre aparezca como una instancia predeterminada . No probé esta técnica, pero a juzgar por los votos que se recopilaron en StackOverflow, seguramente resolvió los problemas de algunas personas.

  2. Parece que Aaron Bertrand ha estado en una situación similar a la mía en el pasado y escribió dos publicaciones de blog diferentes ( primera , segunda ) sobre formas de forzar la eliminación sin ningún medio de instalación / desinstalación. Ambas publicaciones de blog utilizaron esencialmente la misma técnica de construir un archivo por lotes para ejecutar el msiexeccomando que fuerza una desinstalación basada en el GUID encontrado en el registro. Si solo lees una de las publicaciones del blog, te recomendaría la segunda. Utiliza un pequeño script de PowerShell para compilar el archivo por lotes. Si bien personalmente no necesitaba usar este enfoque, era mi siguiente opción. También me gustaría darle una propina a Aaron por luchar contra un dolor antes de que un hombre común como yo se encuentre con el problema, y ​​por documentar una buena solución para la posteridad.


*: Gracias a Ali Razeghi por sugerir este enfoque en los comentarios.

Erik
fuente