18/01/2006

Alteracao de campo chave

Pessoal

Estou com um problema: Em uma tabela fiz alteracao da estrutura da chave. Esta tabela tinha uma chave composta por quatro campos, porem percebi que estava errado. A solucao foi adicionar um campo definindo como autoincremento e chave e os outros campos esta sem chave.
Bom ate ai tudo bem.. Pior e que no cliente ja tem registros. Tenho que fazer uma atualizacao do sistema.. Como devo fazer o upgrade da base sem que o cliente perca os registros ?? Teoricamente seria criar a tabela novamente no cliente, mas entao vai perder os registros...
Estou usando o Firebird 2.0 e Delphi 6


Rogerio


Rogeranalista

Respostas

18/01/2006

Rodrigo.medeiros

Se vc usa o IBExpert, crie um Script Executive da tabela e salve os registros como Insert. Depois é só rodar esse Script Executive na tabela com as alterações feitas.

Pelo que entendi, vc criou um campo a mais como AutoIncrement = Generator. Esse campo não precisa colocar no insert da tabela, mas ao criar o Generator crie também uma trigger de BeforeUpdate, que atualizará automaticamente o campo AutoIncrement quando vc rodar o Script Executive para inserir os dados de volta na tabela.


Responder Citar