Exclusão De Constraint

Firebird

14/06/2004

OI PESSOAL..

Preciso alterar varias constraint, para poder alterar as todas chaves primarias (preciso incluir uma nova chave primaria). Criei um script e quando vou executar no ´ibexpert´ não consigo. Como se trata de muitas alterações, não estou conseguindo. Só consigo fazer uma de cada vez, para cada constraint que excluo preciso desconectar e conectar novamente ao banco,e dessa forma vai levar horas, e ainda teria que dirigir-me a cada cliente(alguns moram fora de minha cidade) que tenho ficando demasiadamente dificil e demorado. Abaixo segue um exemplo do que estou tentanto e a mensagem do ibexpert.

Gostaria de orientacão de como proceder para poder excluir varias constraint atravez de um Script, e se é mesmo necessario Conectar e Desconectar do banco a cada exclusão/Alteração?

[]s.



=== Line: 33 ===================================================================
********* Statement:
ALTER TABLE CLIENTE DROP CONSTRAINT FK_CLIENTE_UF

********* Error:
This operation is not defined for system tables.
unsuccessful metadata update.
object INDEX is in use .


=== Line: 35 ===================================================================
********* Statement:
ALTER TABLE CLIENTE DROP CONSTRAINT FK_CLIENTE_VENDEDOR

ALTER TABLE CLIENTE DROP CONSTRAINT PK_CLIENTE;
ALTER TABLE CLIENTE ADD CONSTRAINT PK_CLIENTE PRIMARY KEY (ID_EMPRESA,ID);

********* Error:
This operation is not defined for system tables.
unsuccessful metadata update.
object INDEX is in use .


=== Line: 67 ===================================================================
********* Statement:
ALTER TABLE CONTAS_A_PAGAR DROP CONSTRAINT FK_CONTASPAGARR_IDECCENT

********* Error:
This operation is not defined for system tables.
unsuccessful metadata update.
object INDEX is in use .


=== Line: 68 ===================================================================
********* Statement:
ALTER TABLE CONTAS_A_PAGAR DROP CONSTRAINT FK_CONTASPAGAR_ENTRADAS

********* Error:
This operation is not defined for system tables.
unsuccessful metadata update.
object INDEX is in use .


=== Line: 69 ===================================================================
********* Statement:
ALTER TABLE CONTAS_A_PAGAR DROP CONSTRAINT FK_CONTASPAGAR_FORNECEDOR

********* Error:
This operation is not defined for system tables.
unsuccessful metadata update.
object INDEX is in use .


etc.....


Siro

Siro

Curtidas 0

Respostas

Maicongabriel

Maicongabriel

14/06/2004

Não ajudou muito, coloque o SCRIPT todo, mas creio eu, que adicionar um COMMIT WORK; em alguns pontos do script, pode solucionar este seu problema; Mas isso depende do script! Coloque-o aqui :wink:[size=18:97299845b6][/size:97299845b6]


GOSTEI 0
Siro

Siro

14/06/2004

Obrigado Maicon

Explicando melhor.
Preciso [b:d39f875131]EXCLUIR TODAS PRIMARY KEY e FOREING KEYS E RECRIA-LAS NOVAMENTES[/b:d39f875131], para poder incluir um novo campo para que a chave primaria e a integridade fique composta. Por isso preciso excluir todas as constraints que existe no banco e recontrui-las novamente.

[]s.


GOSTEI 0
Maicongabriel

Maicongabriel

14/06/2004

Tudo bem, mas mesmo assim, poste o seu script aqui, para podermos te auxiliar.
Tomando como exemplo, este pequeno pedaço que você postou::
ALTER TABLE CLIENTE DROP CONSTRAINT PK_CLIENTE; 
ALTER TABLE CLIENTE ADD CONSTRAINT PK_CLIENTE PRIMARY KEY (ID_EMPRESA,ID); 

Você não pode dropar e Recriar sem antes realmente efetivar as alterações entre uma e outra ação; É ai que entra o Commit Work;
Logo:
ALTER TABLE CLIENTE DROP CONSTRAINT PK_CLIENTE; 
COMMIT WORK;
ALTER TABLE CLIENTE ADD CONSTRAINT PK_CLIENTE PRIMARY KEY (ID_EMPRESA,ID); 
COMMIT WORK;



GOSTEI 0
POSTAR