

ALTERE [CASCATA | INFOCHA | POENULO]
[<item> = <valor>]
[<item> = <valor>]
[FIM]
|
CASCATA |
determina que as chaves estrangeiras subordinadas o registro alterado também sejam alteradas. |
|
INFOCHA |
atualiza as chaves estrangeiras subordinadas segundo a informação contida no dicionário de dados. |
|
POENULO |
coloca nulo nas chaves estrangeiras dos registros subordinados. |
|
<item> |
representa o nome do item cujo valor deve ser trocado. |
|
<valor> |
representa o novo valor para o item. |
|
FIM |
determina o fim da alteração. |
O comando ALTERE se aplica somente a registros cujos endereços são guardados no arquivo de seleção pelo comando SELECIONE. Quando este comando é digitado, o valor do item de dado, mencionado no comando, é substituído por um novo valor em todos os registros do arquivo de seleção.
O ALTERE permite ao usuário especificar um novo valor para mais de um item de dado num registro. Cada par <item>=<valor> é informado numa linha e o comando ALTERE inteiro é finalizado com FIM ou com a tecla ESC/ESC, observando:
Quando utilizado com a opção CASCATA, a modificação é feita da seguinte forma: é alterado o valor da chave primária no registro corrente e logo após são alterados os valores das chaves estrangeiras subordinadas ao registro corrente. Esta opção representa uma alteração em cadeia hierárquica.
Quando utilizado com a opção INFOCHA (KEYINFO), a modificação é feita dependendo da informação definida no esquema do banco de dados.
Para cada opção de atualização o comando ALTERE agirá da maneira seguinte:
Quando utilizado com a opção POENULO, as chaves estrangeiras dos registros, subordinados ao registro corrente, são modificadas para nulo e o registro corrente é alterado. Isto só é possível se a chave estrangeira for do tipo nulo. Caso contrário, não será possível a alteração do registro.
O exemplo a seguir mostra a alteração do item PREÇO do registro cujo valor do item PNOME1 é igual a "IMPRESSORA-200 LPM".
COMANDO? SELECIONE PNOME1 = "IMPRESSORA-200 LPM"
FORAM SELECIONADOS 00001 REGISTROS
COMANDO? ALTERE
? PRECO = 12000
? FIM
