SQL 2005 Express Edition - Instale nova instância
-
02-07-2019 - |
Pergunta
Procurando uma maneira de programar ou não, adicione uma nova instância da SQL 2005 Express Edition a um sistema que já possui uma instância instalada. Tradicionalmente, você executa o instalador da Microft como eu estou na linha de comando abaixo e ela faz o truque. A execução do comando no meu instalador não é o problema, é mais uma questão de arrastar os 40 MBs do instalador MS-SQL que eu não preciso se eles já tiveram o SQL Express instalado. Isto é o que meu instalador atualmente executa:
SQLEXPR32.EXE /qb ADDLOCAL=ALL INSTANCENAME=<instancename> SECURITYMODE=SQL SAPWD=<password> SQLAUTOSTART=1 DISABLENETWORKPROTOCOLS=0
Não preciso de assistência no lançamento deste comando, mas a maneira apropriada de adicionar uma nova instância do SQL 2005 Express sem realmente executar o instalador completo novamente.
Eu entrava em grandes detalhes sobre por que quero fazer isso, mas simplesmente aborrecia a todos. Basta dizer que ter essa capacidade de criar uma nova instância sem o tempo necessário para reinstalar o SQL Express etc. me ajudaria muito para a implantação do meu aplicativo e seu instalador. Se fizer alguma diferença para alguém, estou usando uma combinação de NSIS e instalador avançado para este projeto de instalação.
Solução 3
Depois de meses/anos analisando isso, parece que não pode ser feito. Bem, acho que apenas reinstalo cada vez que quero uma nova instância. Eu acho que é porque cada instância é seu próprio serviço.
Outras dicas
Parece que uma instância do usuário pode ajudá -lo. Se você possui os arquivos MDF e LDF, poderá conectar -se aos arquivos, instruindo o SQL Server Express para iniciar uma instância do usuário e anexar o arquivo especificado a essa instância.
Este estártil http://msdn.microsoft.com/en-us/library/bb264564.aspx Possui uma boa descrição de como você pode se apoiar na instalação existente do SQL Server Express para instanciar uma instância específica do usuário para a duração da sua conexão.
Espero que ajude.
Não sei como fazer isso com uma API, mas se ninguém der uma solução melhor, você sempre poderá usar o processo.start () para executar sua linha de comando como está.