ATUALIZACAO DE TRIGGERS E STORED PROCEDURES
Bom dia.
Levando em conta que alguns clientes não possuem um DBA ou alguém qualificado para [Ô]manusear[Ô] um SQL Server Express, pergunto:
Há como se fazer manutenção no banco do cliente facilmente para Atualizar: Triggers, Stored Procedures e até Criar / Editar campos e tabelas já em uso?
A versão atual do meu sistema é VB6 e Access, então tudo fica no EXE e as mudanças no MDB eu envio um novo banco completo e limpo e um outro aplicativo de migração que transfere todos os dados entre o banco velho e o novo.
O novo sistema que estou fazendo C# + SQL Express 2005, estou pesquisando a forma ideal de desenvolver, pois não tenho como visitar os clientes e muitos não permitem o acesso remoto. Então quero achar a forma de atualizar o sistema de modo fácil para o cliente que não tem gente qualificada.
Alguém pode orientar as opções de como fazer isso?
Levando em conta que alguns clientes não possuem um DBA ou alguém qualificado para [Ô]manusear[Ô] um SQL Server Express, pergunto:
Há como se fazer manutenção no banco do cliente facilmente para Atualizar: Triggers, Stored Procedures e até Criar / Editar campos e tabelas já em uso?
A versão atual do meu sistema é VB6 e Access, então tudo fica no EXE e as mudanças no MDB eu envio um novo banco completo e limpo e um outro aplicativo de migração que transfere todos os dados entre o banco velho e o novo.
O novo sistema que estou fazendo C# + SQL Express 2005, estou pesquisando a forma ideal de desenvolver, pois não tenho como visitar os clientes e muitos não permitem o acesso remoto. Então quero achar a forma de atualizar o sistema de modo fácil para o cliente que não tem gente qualificada.
Alguém pode orientar as opções de como fazer isso?
Não tenho experiência com o SQL Server, mas ele permite dropar triggers e procedures por T-SQL:
http://msdn.microsoft.com/en-us/library/ms173497.aspx
http://msdn.microsoft.com/en-us/library/ms174969(v=sql.90).aspx
O mesmo com certeza pode ser feitos com tabelas e outros objetos em questão se eles não estiverem sendo usados.
Após dropar, é necessário rodar o script de criação dos objetos atualizados.
http://msdn.microsoft.com/en-us/library/ms173497.aspx
http://msdn.microsoft.com/en-us/library/ms174969(v=sql.90).aspx
O mesmo com certeza pode ser feitos com tabelas e outros objetos em questão se eles não estiverem sendo usados.
Após dropar, é necessário rodar o script de criação dos objetos atualizados.
Leandro bom dia.
Eu sei desse Drop e até usei na Stored Procedure que criei. O problema é como usar isso na prática nos cliente, pois como disse não tenho acesso ao sistema do cliente.
Sendo assim para que isso fosse feito, teria de rodar um script com todas as mudanças no banco, mas como seria esse script (único) e como ele seria rodado pelo cliente, pois como disse, há clientes que não tem gente que conheça banco de dados.
Com isso tem todas as questões de acesso ao servidor (SA do banco) para logar;
Como rodar o script no banco;
Se o banco deve estar parado (desconectado do SGDB) e como fazer isso automaticamente;
Como criar e alterar campos nas já existentes (que conterão dados)? Nesse caso não posso dar um Drop na tabela, pois perderia todos os dados.
As dúvidas são sobre isso, pois tenho de criar algo que quaquer usuário possa [Ô]Rodar[Ô] no servidor e assim atualizar o sistema, como faço hoje, envio tudo mastigadinho, é só dar alguns clientes e o sistema está pronto.
Eu sei desse Drop e até usei na Stored Procedure que criei. O problema é como usar isso na prática nos cliente, pois como disse não tenho acesso ao sistema do cliente.
Sendo assim para que isso fosse feito, teria de rodar um script com todas as mudanças no banco, mas como seria esse script (único) e como ele seria rodado pelo cliente, pois como disse, há clientes que não tem gente que conheça banco de dados.
Com isso tem todas as questões de acesso ao servidor (SA do banco) para logar;
Como rodar o script no banco;
Se o banco deve estar parado (desconectado do SGDB) e como fazer isso automaticamente;
Como criar e alterar campos nas já existentes (que conterão dados)? Nesse caso não posso dar um Drop na tabela, pois perderia todos os dados.
As dúvidas são sobre isso, pois tenho de criar algo que quaquer usuário possa [Ô]Rodar[Ô] no servidor e assim atualizar o sistema, como faço hoje, envio tudo mastigadinho, é só dar alguns clientes e o sistema está pronto.
Não precisa dar DROP nas tabelas, você pode simplesmente adicionar novos campos usando o comando do TSQL ALTER TABLE
Tudo que você faz com o Management Studio na verdade por traz dos panos é só um monte de TSQL, eu diria para você criar uma tabela com um campo onde você vai gravar a versão do banco de dados, então você faz um programa que atualiza o banco de dados, ele lê a versão que está la e roda uma série de TSQL para fazer as modificações necessárias, assim também se acontecer por exemplo do banco de dados do cliente estar na versão 1 e o seu programa já está na versão 4, você simplesmente roda cada uma das atualizações até chegar na 4.
Só trigger e stored procedure que acho que é realmente necessário dar DROP
Tudo que você faz com o Management Studio na verdade por traz dos panos é só um monte de TSQL, eu diria para você criar uma tabela com um campo onde você vai gravar a versão do banco de dados, então você faz um programa que atualiza o banco de dados, ele lê a versão que está la e roda uma série de TSQL para fazer as modificações necessárias, assim também se acontecer por exemplo do banco de dados do cliente estar na versão 1 e o seu programa já está na versão 4, você simplesmente roda cada uma das atualizações até chegar na 4.
Só trigger e stored procedure que acho que é realmente necessário dar DROP
no caso vc queria aumentar ou diminuir o tamanho de armazenamento do banco modificar as proc, tabelas isso só é feito pelo gerenciador do sql server que é Management Studio
dá até pra modificar procedures triggers etc... só não pode modificar as variaveis que é usadas nas procdedures pq dai a app ñ ira interpretar, ai dá [Ô]pau[Ô] se vc mudar a versão do seu app entao tem que mudar algumas coisas do banco e migrar dados de um banco para outro procura sobre a revista SQL MAGAZINE http://www.sqlmag.com/
dá até pra modificar procedures triggers etc... só não pode modificar as variaveis que é usadas nas procdedures pq dai a app ñ ira interpretar, ai dá [Ô]pau[Ô] se vc mudar a versão do seu app entao tem que mudar algumas coisas do banco e migrar dados de um banco para outro procura sobre a revista SQL MAGAZINE http://www.sqlmag.com/
LUIS, é possÃvel vc pode enviar o script com todas as modificações para o seu cliente, e fornecer um aplicativo ou até mesmo no teu sistema um meio dele executar esse aplicativo. O ideal é esse aplicativo rodar no servidor, onde pessoas responsáveis podem ter acesso ao mesmo e executar este script quando o sistema está foria de uso de preferência.
Leandro entendi. Eu abro o Management do SQL e copio o Script, OK, então incluo em algum EXE para atualizar. Minha dúvida é como executar cada script (um por vez) e checar se não deu erro, isso até terminar tudo. Vou dar uma pesquisada nisso.
Valeu
Valeu
Tópico encerrado , respostas não são mais permitidas