✅ Explicação
A instrução UPDATE
serve para alterar valores de uma ou mais colunas em uma ou várias linhas de uma tabela ou visão (view). Quando usada em uma view, atualiza a tabela base — a menos que exista um gatilho INSTEAD OF
, que desvia o comportamento.
📌 Usos mais comuns
-
Atualizar linhas com base em uma condição (
WHERE
) -
Atualizar uma linha específica com
cursor
-
Atualizar valores usando subconsultas ou expressões
-
Aplicar atualizações diretas ou condicionais em lote
🧾 Sintaxe
🔹 Atualização pesquisada (Searched UPDATE)
UPDATE nome_tabela
SET coluna1 = valor1,
coluna2 = valor2,
...
WHERE condição;
🔹 Atualização posicionada (usando cursor em programas COBOL)
UPDATE nome_tabela
SET coluna1 = :variavel1,
coluna2 = :variavel2
WHERE CURRENT OF nome_cursor;
🧪 Exemplos práticos
Exemplo 1: Atualizando salário de todos os ANALISTAS
UPDATE EMPREGADOS
SET SALARIO = SALARIO * 1.10
WHERE CARGO = 'ANALISTA';
Exemplo 2: Atualizando com valores fixos
UPDATE EMPREGADOS
SET CARGO = 'LÍDER', SALARIO = 8000
WHERE ID = 1020;
Exemplo 3: Atualizando com cursor (em COBOL)
EXEC SQL
DECLARE CUR_EMP CURSOR FOR
SELECT ID FROM EMPREGADOS
WHERE SALARIO < 2000
FOR UPDATE
END-EXEC.
EXEC SQL
OPEN CUR_EMP
END-EXEC.
PERFORM UNTIL SQLCODE ≠ 0
EXEC SQL
FETCH CUR_EMP INTO :WS-ID
END-EXEC
IF SQLCODE = 0
EXEC SQL
UPDATE EMPREGADOS
SET SALARIO = SALARIO + 500
WHERE CURRENT OF CUR_EMP
END-EXEC
END-IF
END-PERFORM.
EXEC SQL
CLOSE CUR_EMP
END-EXEC.
⚠️ Regras importantes
-
Cuidado com
WHERE
: se esquecer essa cláusula, TODAS as linhas da tabela serão atualizadas. -
Você precisa do privilégio
UPDATE
na tabela ou nas colunas alteradas. -
Para usar
WHERE
, também precisa de permissãoSELECT
. -
Views só podem ser atualizadas se forem atualizáveis (ou se tiverem gatilhos
INSTEAD OF
definidos).
💡 Dicas
-
Use
ROLLBACK
eCOMMIT
estrategicamente em lote de atualizações. -
Prefira atualizar por identificadores únicos (ID, chave primária).
-
Verifique se a tabela tem índices — isso melhora o desempenho nas atualizações com
WHERE
.
✅ Conclusão
O comando UPDATE
é essencial para manter os dados vivos e atualizados em qualquer sistema. Seja ajustando salários, cargos ou corrigindo informações, dominar esse comando é obrigação pra quem trabalha com DB2 e SQL no dia a dia.