I SQL Server kombinerer en "Upsert" -operasjon handlingene til både et innlegg og en oppdateringsuttalelse i en enkelt uttalelse. Denne operasjonen setter inn en ny rad i en tabell hvis den raden ikke er til stede. Ellers oppdaterer den en allerede nåværende rad. Fordelen med.
Opprette et bord
La oss opprette en tabell i SQL -serveren som vi kan bruke til å utføre Upsert -operasjonene på.
Lag tabell [dbo].[Ansatt](Produksjon:
Empid navn Depid SalMåter å utføre oppføringsoperasjonen
Det er flere måter å utføre en oppgangsoperasjon i SQL -serveren. I denne artikkelen vil vi diskutere de tre vanlige metodene for å utføre en oppgangsoperasjon: ved å bruke Exists -leddet, RowCount -funksjonen og Merge -setningen.
1. Bruke eksistens leddet
Denne metoden innebærer bruk. Eksister -leddet returnerer sant hvis undervisningen returnerer noen rader.
Begynn transaksjonProduksjon:
Empid navn Depid SalHer bruker SQL -koden Exists -metoden for å utføre en oppgangsoperasjon i SQL -serveren. Den setter i gang en transaksjon og erklærer variablene for å holde ansattes ID og navneverdier. Koden sjekker om en post med den gitte ansattes ID eksisterer i tabellen ved å bruke den eksisterende leddet. Hvis det eksisterer, oppdaterer den ansattes navn til en ny verdi. Ellers setter den inn en ny rad med den gitte ansattes ID og navn.
2. Bruke RowCount -funksjonen
Denne metoden innebærer å kjøre en oppdateringsuttalelse først, etterfulgt av en innsatsuttalelse hvis oppdateringsuttalelsen ikke oppdaterte noen rader.
Begynn transaksjonProduksjon:
Empid navn Depid SalHer prøver SQL -koden å oppdatere navnet på den ansatte med den gitte IDen i tabellen ved hjelp av oppdateringen og serialiserbare hint som skaffer seg en eksklusiv lås på den valgte raden. Hvis oppdateringen ikke påvirker noen rader, utfører koden en innsatserklæring for å sette inn en ny rad med den gitte ansattes ID og navneverdier.
3. Bruke Merge -uttalelsen
En tredje måte å utføre en oppgangsoperasjon i SQL -serveren er å bruke Merge -setningen. Denne metoden kombinerer handlingene til innsats- og oppdateringsuttalelsene til en enkelt uttalelse, ligner på eksisterende leddet, men med mer avanserte funksjoner.
erklære @Employeeid int = 18;Produksjon:
Empid navn Depid SalDenne SQL -spørringen bruker Merge -setningen for å slå sammen dataene fra en kildetabell til en måltabell. Det samsvarer med radene mellom de to tabellene ved å bruke "Empid -kolonnen", og oppdaterer "Navnkolonnen" i måltabellen hvis en kamp er funnet. Hvis det ikke er noen kamp, setter den inn en ny rad.
Konklusjon
Upsert -operasjonene er et vanlig krav i SQL -serveren. Det er flere måter å oppnå dem på, inkludert bruk. Vi kan velge den beste tilnærmingen basert på kravet vårt.