Eu fiz separado, pois ele tambem baixa o executavel atualizado do sistema, e se estivesse tudo junto daria arquivo em uso na hora de descompactar o mesmo.
Ele praticamente faz isso:
Verifica a versão que esta no meu ftp, se no meu cliente for + antiga ele já baixa de imediato, se for a mesma ele pergunta se deseja baixar mesmo assim (sei la, as vezes o executavel baleou, sei la...).
Ele baixa o zip, descompacta.
Dai ele vai pro banco de dados, baixa um arquivo de estruturas do banco (eu enviei esse arquivo do meu micro,cujo sistema e banco são os + atuais).
Ele abre esse arquivo de estrutura e vai conferindo com o que o cliente tem, em caso de novos campos ele já cria de imediato, alteração de tamanhos (string) para maior ele ja faz, menor eu apenas gravo uma mensagem para meu usuario no sistema, para eu fazer manualmente (seguranca), excluir campos mesma coisa, apenas gravo um aviso para fazer manualmente (seguranca), vai que eu fiz bobeira e apago um campo da tabela do cliente sem querer.
Enfim, acho que um aplicativo apenas para isso separado de todo o sistema é o ideal, até porque ele teria que ter acesso a internet, e vc mostrando pros clientes + desconfiados que a unica aplicação que teria acesso a internet pelo firewall seria esse atualizador, ele não corre riscos de ver seus dados serem transmitidos para o programador (embora de da mesma forma... rs)
Se tiver a fim de trocar ideias sobre o assunto me procure, ainda tenho algumas coisas pendentes nele e será bom trocar ideia... T+