Exclusão De Constraint
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.....
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
Curtidas 0
Respostas
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
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.
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
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::
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:
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