Pergunta

Eu tenho um aplicativo Winform criado com o VS 2008 (C#) e o SQL Server Express 2008 que está atualmente implantado no PC dos usuários de teste.

Tenho modificações a serem feitas na estrutura do banco de dados (adicione campos, tabelas etc.) e me pergunto qual é o melhor método para distribuir as alterações no PC do usuário (sem perder os dados dos usuários).

Pelo que aprendi até agora, precisarei escrever as alterações em um arquivo de script. Mas qual é o melhor método para distribuir os arquivos de script sem executá -los manualmente no estúdio de gerenciamento do SQL Server? Existe algum método de distribuição automática que você sugere? Eu tenho que escrever meu próprio aplicativo de atualização?

Atualmente, uso o ClickOnce para distribuir as alterações no arquivo EXE. O ClickOnce ainda é uma solução viável quando você precisa fazer alterações no banco de dados com a nova versão?

Tia

Foi útil?

Solução

Existem muitas maneiras de fazer isso - ou construa sua própria versão caseira de alguma forma (por exemplo, estamos atualmente empacotando scripts de alteração no banco de dados em uma DLL como recursos incorporados e têm um mecanismo que os executará na máquina cliente na instalação e /ou tempo de atualização), ou você pode olhar para produtos .NET prontamente disponíveis como Red-Gate SQL Packager o que pode economizar muito tempo e esforço.

Outras dicas

Você pode escrever seu aplicativo na inicialização para ler um arquivo de script na pasta do aplicativo e executá -lo. Você pode atualizar o script em um valor no banco de dados uma vez feito para impedir que ele seja executado novamente.

Você pode implantar o novo arquivo de script como conteúdo e o aplicativo o executará na próxima inicialização, atualizando seu banco de dados

Você pode ligar para o OSQL ou SQLCMD que enviam com MSSQL.

Ou você pode usar o SMO para executar seus scripts de alteração do banco de dados. Ver este blog como isso é feito.

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