Databaser handler om CRUD -operasjoner. Vi oppretter, leser, oppdaterer og sletter data i forskjellige databasetabeller. Imidlertid krever de fleste CRUD -operasjoner i en database separat logikk for oppgaver, for eksempel å sette inn, oppdatere og slette.
Dette kan raskt bli overflødig. SQL Server gir en effektiv måte å utføre CRUD -operasjoner ved å bruke Merge -setningen. Microsoft introduserte Merge -setningen i SQL Server 2008 og over.
Denne opplæringen vil forstå hvordan du bruker SQL Server Merge -setningen for å utføre flere operasjoner i en enkelt spørring.
Det grunnleggende
La oss ta et eksempel på hvor du har to bord. Mål- og kildetabellene. Hvis du trenger å oppdatere verdiene i måltabellen basert på verdiene fra kildetabellene, kan du ta tre stier:
For å utføre ovennevnte operasjoner individuelt, må vi lage tre separate logikk for innsats, slette og oppdatere driften. Imidlertid kan vi kombinere dem ved hjelp av Merge -setningen.
Vi kan uttrykke syntaks for sammenslåingsuttalelsen som vist:
Slå sammen målet_table ved hjelp av source_tableVi identifiserer mål- og kildetabellen og spesifiserer dem i sammenslåingsklausulen. Vi spesifiserer deretter en betingelse. Den spesifiserte tilstanden kontrollerer hvordan radene fra kildetabellen er tilpasset måltabellene. Tenk på det som en sammenføyningstilstand.
Den neste blokken inneholder handlingene som skal utføres basert på resultatet av den spesifiserte tilstanden.
Hvis tilstanden resulterer i en kamp, oppdaterer vi postene i måltabellen fra kildetabellen.
Imidlertid, hvis postene er uovertruffen (fra måltabellen), setter vi inn de manglende postene i måltabellen.
Til slutt, hvis postene er uovertruffen (med måltabellen), sletter vi de uovertrufne postene fra måltabellen.
SQL Server - Fett eksempel på eksempel
La oss ta et enkelt eksempel. Anta at vi har to tabeller som inneholder produktinformasjon som Products_Target og Product_Source.
Eksempelkodebiten viser SQL -spørsmålene for å opprette og oppdatere de spesifiserte tabellene.
Bruk SalesDB;Nå har vi to bord som fungerer som et mål og kilde. Registreringene som er lagret i tabellene er som vist:
For å synkronisere dataene mellom mål- og kildetabellen, kan vi utføre en fletteforespørsel som vist i eksemplet nedenfor:
Slå sammen produkter_target som tNår vi har utført spørringen ovenfor, vil SQL -serveren utføre de spesifiserte operasjonene basert på den resulterende tilstanden.
Vi kan spørre tabellene etter fletteoperasjonen som:
Velg * fra Products_Source;De resulterende verdiene er som vist i eksemplet nedenfor:
Som du vil legge merke til, synkroniseres kilde- og måltabellpostene med verdiene oppdatert, satt inn og slettet.
Konklusjon
Denne guiden viser deg hvordan du jobber med SQL Server Merge -setningen. Den lar deg utføre innsats, oppdatere og slette operasjoner på tabeller basert på de resulterende forhold.
Takk for at du leser!