🔹 Comando MERGE
O comando MERGE no SQL permite combinar operações de INSERT, UPDATE e DELETE em uma única instrução. Ele é útil quando precisamos comparar dados entre duas tabelas e aplicar mudanças automaticamente conforme critérios estabelecidos.
🎯 Utilidade do MERGE
O MERGE é amplamente utilizado em:
-
ETL (Extract, Transform, Load): Processos de integração de dados.
-
Sincronização de Dados: Atualização de tabelas com novas informações.
-
Manutenção de Dados: Inserção de registros ausentes, atualização de registros existentes e remoção de dados obsoletos.
📝 Exemplo de Uso
Suponha que temos duas tabelas:
-
Clientes_Novos: Contém novos clientes que precisam ser adicionados ou atualizados.
-
Clientes: Base principal onde os dados precisam ser mesclados.
MERGE INTO Clientes AS C
USING Clientes_Novos AS CN
ON C.id = CN.id
WHEN MATCHED THEN
UPDATE SET C.nome = CN.nome, C.email = CN.email
WHEN NOT MATCHED THEN
INSERT (id, nome, email) VALUES (CN.id, CN.nome, CN.email);
🧐 Explicação
-
MERGE INTO Clientes AS C – Define a tabela alvo onde as mudanças ocorrerão.
-
USING Clientes_Novos AS CN – Especifica a origem dos novos dados.
-
ON C.id = CN.id – Define a condição de correspondência.
-
WHEN MATCHED THEN UPDATE – Atualiza registros existentes.
-
WHEN NOT MATCHED THEN INSERT – Insere novos registros.
⚙️ Aplicação Prática do MERGE
Esse comando é útil para:
-
Atualização de estoque: Quando um novo lote de produtos chega e precisamos atualizar preços e quantidades.
-
Gestão de usuários: Sincronização de cadastros entre diferentes sistemas.
-
Processamento de pedidos: Unificação de pedidos pendentes e concluídos em um banco de dados centralizado.
🏁 Conclusão
O MERGE simplifica operações que normalmente exigiriam múltiplas instruções INSERT, UPDATE e DELETE, tornando as consultas mais eficientes e fáceis de manter. Ele é especialmente útil para integração e sincronização de dados em larga escala.
👉 Dica: Sempre teste o comando MERGE em um ambiente de desenvolvimento antes de aplicá-lo em produção para evitar atualizações indesejadas! 🚀