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.

Foi útil?

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á.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top