Fórum Alterar campo para not null #50844

03/05/2005

0

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?


Ediane

Ediane

Responder

Posts

03/05/2005

Vinicius2k

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 :
1
2
3
4
5
6
7
8
9
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+


Responder

Gostei + 0

03/05/2005

Gandalf.nho

Algumas ferramentas como o IBExpert permitem isso (provavelmente alterando diretamente as tabelas de sistema)


Responder

Gostei + 0

03/05/2005

Ediane

Obrigada pelas dicas colegas!


Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar