Bancos de dados são tudo a ver com operações CRUD. Criamos, lemos, atualizamos e excluímos dados em várias tabelas de banco de dados. No entanto, a maioria das operações CRUD em um banco de dados requer lógica separada para tarefas, como inserção, atualização e exclusão.
Isso pode ser redundante rapidamente. O SQL Server fornece uma maneira eficiente de executar operações CRUD usando a instrução Merge. A Microsoft apresentou a declaração de mesclagem no SQL Server 2008 e acima.
Este tutorial entenderá como usar a instrução Merge SQL Server para executar várias operações em uma única consulta.
O básico
Vamos dar um exemplo de onde você tem duas mesas. O alvo e as tabelas de origem. Se você precisar atualizar os valores na tabela de destino com base nos valores das tabelas de origem, poderá seguir três caminhos:
Para executar as operações acima individualmente, precisamos criar três lógicas separadas para operações de inserção, exclusão e atualização. No entanto, podemos combiná -los usando a declaração de mesclagem.
Podemos expressar a sintaxe da declaração de mesclagem, como mostrado:
Mesclar Target_table usando fonte_tableIdentificamos o alvo e a tabela de origem e os especificamos na cláusula de mesclagem. Então especificamos uma condição. A condição especificada controla como as linhas da tabela de origem são combinadas com as tabelas de destino. Pense nisso como uma condição de junção.
O próximo bloco mantém as ações a serem executadas com base no resultado da condição especificada.
Se a condição resultar em uma correspondência, atualizamos os registros na tabela de destino da tabela de origem.
No entanto, se os registros forem incomparáveis (da tabela de destino), inserimos os registros ausentes na tabela de destino.
Finalmente, se os registros forem incomparáveis (pela tabela de destino), excluímos os registros incomparáveis da tabela de destino.
SQL Server - Exemplo de mesclagem
Vamos dar um exemplo simples. Suponha que tenhamos duas tabelas contendo informações do produto como Products_target e Product_source.
O snippet de código de exemplo mostra as consultas SQL para criar e atualizar as tabelas especificadas.
Use salesdb;Agora temos duas tabelas com um alvo e fonte. Os registros armazenados nas tabelas são como mostrados:
Para sincronizar os dados entre o destino e a tabela de origem, podemos executar uma consulta de mesclagem, como mostrado no exemplo abaixo:
Merge Products_target como TDepois de executar a consulta acima, o servidor SQL executará as operações especificadas com base na condição resultante.
Podemos consultar as tabelas após a operação de mesclagem como:
Selecione * de Products_source;Os valores resultantes são os mostrados no exemplo abaixo:
Como você notará, os registros de tabela de origem e destino são sincronizados com os valores atualizados, inseridos e excluídos.
Conclusão
Este guia mostra como trabalhar com a instrução SQL Server Merge. Ele permite que você execute inserir, atualizar e excluir operações em tabelas com base nas condições resultantes.
Obrigado pela leitura!