Alterar campo para not null
Olá Pessoal,
Estou precisando alterar um campo para not null, e colocá-lo como chave primária numa tabela já instalada no cliente. Como Faço?
Estou precisando alterar um campo para not null, e colocá-lo como chave primária numa tabela já instalada no cliente. Como Faço?

Ediane
Curtidas 0
Respostas

Vinicius2k
03/05/2005
Colega,
Vc precisará de uma coluna auxiliar para armazenar os valores atuais, dropar e recriar a coluna original como not null e criar a contraint de chave primária.
Algo como :
Não se esqueça de fazer um backup antes, caso ocorra algum erro na execução do script e ele não seja completado.
Espero ter ajudado.
T+
Vc precisará de uma coluna auxiliar para armazenar os valores atuais, dropar e recriar a coluna original como not null e criar a contraint de chave primária.
Algo como :
alter table TABELA add COLUNA_TMP integer; update TABELA set COLUNA_TMP = COLUNA_ORIGINAL; /****/ alter table TABELA drop COLUNA_ORIGINAL; alter table TABELA add COLUNA_NOVA integer not null; alter table TABELA add constraint PK_TABELA primary key (COLUNA_NOVA); /****/ update TABELA set COLUNA_NOVA = COLUNA_TMP; alter table TABELA drop COLUNA_TMP;
Não se esqueça de fazer um backup antes, caso ocorra algum erro na execução do script e ele não seja completado.
Espero ter ajudado.
T+
GOSTEI 0

Gandalf.nho
03/05/2005
Algumas ferramentas como o IBExpert permitem isso (provavelmente alterando diretamente as tabelas de sistema)
GOSTEI 0

Ediane
03/05/2005
Obrigada pelas dicas colegas!
GOSTEI 0