DB2 - Banco de dados - Instruções e Funções Básicas - COMMIT


Volta a página anterior

Volta ao Menu Principal


Desenvolvido por DORNELLES Carlos Alberto - Analista de Sistemas - Brasília DF. - cad_cobol@hotmail.com

COMMIT

A instrução COMMIT aplicará todas as alterações do banco de dados que tiverem sido feitas durante a unidade de trabalho contendo a instrução de confirmação.

Se os prompts de confirmação são ativados e uma consulta contém uma ou mais instruções COMMIT, um painel de confirmação é exibido para cada instrução COMMIT.
Suas respostas aos prompts de confirmação se aplicam a todas as alterações do banco de dados que ocorreram desde o início da consulta ou após a última instrução COMMIT.
No entanto, se uma instrução COMMIT seguir as instruções SQL que alteram apenas um catálogo do banco de dados, um painel de confirmação não será exibido para essa instrução COMMIT.

Se a consulta contiver múltiplas instruções e uma das instruções falhar, o processamento cessará e nenhuma instrução subsequente será executada.
Se uma consulta com diversas instruções contiver uma ou mais instruções COMMIT e um erro ocorrer, o processamento cessará e nenhuma instrução subsequente será executada.
Todas as mudanças no banco de dados que tiverem ocorrido antes do erro SQL e depois da última instrução COMMIT bem-sucedida serão recuperadas.
Algumas instruções, como SET, aplicam-se à sessão ou ao ambiente do QMF e, portanto, não são recuperadas em situações de erro.

Exemplo

No exemplo a seguir, se os prompts de confirmação são ativados, um prompt de confirmação é emitido após as primeiras duas instruções COMMIT.
No entanto, não será exibido um painel de prompt para a terceira instrução COMMIT, pois ela segue uma instrução ALTER, que altera apenas um catálogo do banco de dados.

   CREATE TABLE MYSTAFF2 LIKE Q.STAFF;              
   INSERT INTO MYSTAFF2 SELECT * FROM Q.STAFF;      
   COMMIT;     
                                     
   INSERT INTO W397754.MYSTAFF2                     
          (ID, "NAME", DEPT, JOB, "YEARS", SALARY, COMM)   
   VALUES (99,'WILLY',22,'SUB',2,1.00,0.0);      

   INSERT INTO W397754.MYSTAFF2                     
          (ID, "NAME", DEPT, JOB, "YEARS", SALARY, COMM)   
   VALUES (99,'WILLY2',22,'SUB',2,1.00,0.0);     
   COMMIT;     
                                     
   ALTER TABLE MYSTAFF2                             
   ADD   COMMENT CHAR(30);                            
   COMMIT;   
                                       
   UPDATE MYSTAFF2                                  
      SET COMMENT = 'UPDATE FOR WILLIAMS'              
    WHERE  NAME = 'WILLIAMS';   
                      
    SELECT * 
    FROM   MYSTAFF2;                       


© Copyright IBM Corp.