SQL 2005 Express Edition - Установить новый экземпляр
-
02-07-2019 - |
Вопрос
Ищете способ программно или иным образом добавить новый экземпляр SQL 2005 Express Edition в систему, в которой уже установлен экземпляр.Традиционно вы запускаете программу установки Micrsoft, как я, в командной строке ниже, и это делает свое дело.Выполнение команды в моем установщике - это не проблема, это скорее вопрос перетаскивания 40 МБАЙТ установщика MS-SQL, который мне не нужен, если у них уже установлен SQL Express.Это то, что в данный момент выполняет мой установщик:
SQLEXPR32.EXE /qb ADDLOCAL=ALL INSTANCENAME=<instancename> SECURITYMODE=SQL SAPWD=<password> SQLAUTOSTART=1 DISABLENETWORKPROTOCOLS=0
Мне не нужна помощь с запуском этой команды, скорее подходящий способ добавить новый экземпляр SQL 2005 Express без повторного запуска полной программы установки.
Я бы очень подробно рассказал о том, почему я хочу это сделать, но это просто наскучило бы всем.Достаточно сказать, что наличие этой возможности позволяет создавать новый экземпляр без затрат времени на переустановку SQL Express и т.д.это очень помогло бы мне в развертывании моего приложения и его установщика.Если для кого-то это имеет какое-либо значение, я использую комбинацию NSI и Advanced Installer для этого проекта установки.
Решение 3
После месяцев / лет изучения этого вопроса становится ясно, что это невозможно сделать.Ну что ж, я думаю, я просто переустанавливаю каждый раз, когда мне нужен новый экземпляр.Я думаю, это потому, что каждый экземпляр - это свой собственный сервис.
Другие советы
Похоже, что пользовательский экземпляр может вам помочь.Если у вас есть файлы MDF и LDF, вы можете подключиться к файлам, указав SQL Server Express запустить экземпляр пользователя и прикрепить указанный файл к этому экземпляру.
Этот артил http://msdn.microsoft.com/en-us/library/bb264564.aspx содержит хорошее описание того, как вы можете использовать существующую установку SQL Server Express для создания экземпляра, специфичного для пользователя, на время вашего подключения.
Надеюсь, это поможет.
Я не знаю, как это сделать с помощью API, но если никто не предложит лучшего решения, вы всегда можете использовать Process .Start() для выполнения вашей командной строки как есть.