UPDATE
 Atualiza o arquivo de dados corrente a partir de outro arquivo de dados
------------------------------------------------------------------------------

 Sintaxe

     UPDATE FROM <xcAlias> ON <expChave> [RANDOM]
        REPLACE <idCampo> WITH <exp> [, <idCampo2> WITH <exp2>...]

 Argumentos

     FROM <xcAlias> especifica o alias para a área de trabalho usada
     para atualizar registros na área corrente.  Este argumento pode ser
     especificado literalmente ou como expressao caractere entre parênteses.

     ON <expChave> especifica a expressao que define registros
     correspondentes na área de trabalho da cláusula FROM.

     REPLACE <idCampo> é o campo da área corrente a ser atualizado com o
     novo valor.

     WITH <exp> é o valor a ser atualizado dentro do campo corrente.
     Qualquer campo contido na área da cláusula FROM deve ser referenciado
     com o alias correto.

     RANDOM permite que registros no arquivo de dados especificado pela
     cláusula FROM estejam em qualquer ordem.  Se esta opçao for
     especificada, o arquivo de dados corrente deve estar indexado por
     <expChave>.

 Descriçao

     UPDATE atualiza campos na área corrente com valores provenientes de
     outra área baseado numa expressao chave.  UPDATE é desenhado para
     atualizar somente registros da área corrente baseados numa relaçao um
     para um ou um para muitos com a área especificada em FROM.  Isto
     significa que UPDATE pode atualizar somente registros na área corrente
     com valores de chave únicos.  Quando existe mais de um caso de um valor
     chave, somente o primeiro registro com esta chave é atualizado.  A área
     FROM, entretanto, pode ter chaves em duplicidade.

     Existem duas formulaçoes deste comando dependendo se os registros na
     área corrente estao classificados (SORT) ou indexados por <expChave>.
     Se RANDOM nao for especificado, ambas, a área corrente e área de FROM
     devem ser classificadas ou indexadas pela ordem <expChave>, mas os
     registros da área de trabalho corrente podem estar em qualquer ordem.

     Para utilizar UPDATE em rede, o arquivo corrente deve estar travado com
     FLOCK() ou aberto EXCLUSIVE.  O arquivo FROM pode ser usado em qualquer
     modo.  Leia o capítulo Programando em Rede no livro Programando e
     Utilitários para maiores informaçoes.

 Notas

       Registros marcados: Quando DELETED está ON, todos os
        registros sao atualizados, inclusive os marcados.  Registros
        marcados no arquivo FROM, contudo, sao ignorados.

 Exemplos

     Este exemplo atualiza o arquivo Customers a partir do arquivo Invoices:

     USE Invoices NEW
     USE Customer INDEX Customer NEW
     UPDATE FROM Invoices ON Last;
        REPLACE Owed WITH Owed + Invoices->Amount RANDOM

 Arquivos:  Biblioteca CLIPPER.LIB.
 To download this example - click here.

See Also: INDEX JOIN REPLACE SET UNIQUE* SORT