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.