Как удалить SQL Server 2014 Standard Edition без установочного носителя?

9

У меня была копия SQL Server 2014 Standard, установленная на моем компьютере разработчика в качестве экземпляра по умолчанию в течение нескольких лет. Я установил стандарт на свою машину, потому что у меня была бесплатная лицензия, которую я мог использовать по подписке MSDN. Теперь я хочу удалить SQL Server 2014 и сделать SQL Server 2017 Developer Edition своим экземпляром по умолчанию. Я попытался удалить SQL Server 2014 с помощью стандартного рабочего процесса «Установка и удаление программ», но после запроса о том, какие функции я хочу удалить, он запрашивает каталог, содержащий носитель для удаления. К сожалению, я не сохранил пакет загрузки SQL Server 2014, полученный от MSDN, и у меня больше нет доступа к MSDN. Я также проверил My Visual Studio, но он возвращается только к SQL Server 2016. Как я могу удалить SQL Server 2014 Standard без установочного носителя?


Дальнейшая история вопроса:

Единственная причина, по которой я хочу удалить SQL Server 2014, заключается в том, что я хочу использовать STRING_AGGфункцию, которая является новой для баз данных SQL Azure и SQL Server 2017. Чтобы упростить настройку сред разработки, мы используем точечную нотацию для строк подключения к локальной среде, например: наша строка подключения:

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

Точечная нотация соединяется с базой данных по умолчанию, и, насколько мне известно, я не могу сделать SQL Server 2017 базой данных по умолчанию, не удалив сначала SQL Server 2014. Если я смогу использовать строку подключения с точечной нотацией для подключения к SQL Server 2017 без удаления SQL Server 2014, то я также буду открыт для этого решения.

Erik
источник

Ответы:

10

Мне удалось удалить экземпляр SQL Server 2014, загрузив ознакомительную версию SQL Server 2014 *. Чтобы загрузить ознакомительную версию, мне пришлось предоставить Microsoft некоторые контактные данные, а затем загрузить два файла. Один файл имел .boxрасширение, а другой - .exeрасширение. Казалось, что исполняемый файл просто распаковывает файл коробки. После распаковки файла я перезапустил процесс удаления SQL Server 2014 через стандартный рабочий процесс «Установка и удаление программ». Обратите внимание, что я никогда не пытался установить ознакомительную версию. Я просто использовал распакованные файлы, чтобы удалить свой существующий экземпляр SQL Server 2014.

Я решил удалить компоненты базы данных, но оставить общие компоненты. Как только процесс удаления начал запрашивать установочный носитель, я обнаружил, что он будет запрашивать различные .msiфайлы. Большую часть времени он будет запрашивать MSI-файл с «loc» в имени файла, а затем MSI-файл без «loc» в имени файла. Внутри папки, в которой я распаковал файл коробки, находилась "loc" версия msi-файлов:

\1033_ENU_LP\x64\Setup\

и файлы без "loc" в имени файла были расположены:

\x64\Setup\

После завершения процесса удаления я перезапустил свой компьютер и смог установить SQL Server 2017 Developer Edition в качестве экземпляра по умолчанию. Интересно, что во время процесса установки SQL Server 2017 меня попросили установить носитель для двух файлов SQL Server 2014, один из которых был SQLWRITER.MSI. Я не знаю, связано ли это с тем, что я не удалил общие компоненты для SQL Server 2014. Если это вызовет у меня проблемы в будущем из-за ограниченного по времени характера ознакомительной версии SQL Server 2014, которую я использовал для удаления своего старого SQL Server 2014 Standard Edition Я буду обновлять этот ответ.


Альтернативные подходы, которые были упомянуты в комментариях, которые я не пробовал, но кажется, что они будут хорошими мерами противодействия.

  1. Причина, по которой я захотел удалить SQL Server 2014, заключалась в том, что я мог использовать точечную нотацию для подключения к SQL Server 2017. Скотт Ходжин рекомендовал мне изучить метод, позволяющий сделать именованный экземпляр похожим на экземпляр по умолчанию . Я не пробовал эту технику, но, судя по голосам, собранным на StackOverflow, он наверняка решил проблемы некоторых людей.

  2. Аарон Бертран, похоже, в прошлом находился в похожей ситуации, как и я, и написал два разных поста в блоге ( первое , второе ) о способах принудительного удаления без какой-либо установки / удаления носителя. В обоих сообщениях блога использовалась, по сути, одна и та же методика создания командного файла для выполнения msiexecкоманды, которая вызывает удаление на основе GUID, найденного в реестре. Если вы читаете только одно из сообщений в блоге, я бы порекомендовал второе. Для построения командного файла используется небольшой скрипт PowerShell. Хотя мне лично не нужно было использовать этот подход, это был мой следующий вариант. Также я хотел бы дать Аарону шляпную подсказку для того, чтобы преодолеть болевую точку до того, как обычный человек, такой как я, столкнулся с проблемой, и для того, чтобы задокументировать хорошее решение проблемы для потомков.


*: Спасибо Али Разеги за то, что он предложил этот подход в комментариях.

Erik
источник