Treść książki

Przejdź do opcji czytnikaPrzejdź do nawigacjiPrzejdź do informacjiPrzejdź do stopki
86
CzęśćI:Podstawowezagadnienia
Planujawniarównież,żenadwóchtabelachwykonywanejestzłączenietypu„Full
OuterJoin”,jakwidaćnaRysunku2-4.
RYSUNEK2-4OperacjaFullOuterJoinwybranaprzezplanwykonaniakwerendydla
operacjiMERGE
Jakwspomnianowcześniej,typzłączeniazależyodtego,któreklauzulescalania
WHEN…THEN(lubniesą)określonewinstrukcjiMERGE.Wtymprzypadku
SQLServerprzeprowadzaoperację„FullOuterJoin”,ponieważinstrukcjaMERGE
wykorzystujewszystkietrzymożliweklauzulescalania.Następującapóźniejoperacja
ltrowania(patrzRysunek2-5)implementujepredykatpierwszejklauzuliscalania,
którypobierapasującewierszejedyniewtedy
,gdyzmianieuległachoćjednazkolumn
niekluczowych.
RYSUNEK2-5Operacjascalaniaindeksuklastrowego,którawykonujemodyfikacje,
wstawieniaiusunięcianapotrzebyscalania
Scalanieindeksuklastrowegostanowinowąoperację,którazasadniczowykorzystujestru-
mieńdostarczanyprzezoperację„FullOuterJoin”.Następniewoparciuoskładnięinstruk-
cjiMERGEorazdanewtabelachźródłowejorazdocelowejdecydujewierszpowierszu,
czyprzekazanyrekordmazostaćzmodyfikowany
,wstawionybądźusunięty
.
Wykonywanieoperacji„UPSERT”
GłównymprzeznaczenieminstrukcjiMERGEjestrealizacjategotypuzbiorowychope-
racji(przetwarzaniawieluwierszynaraz),jakieprzeprowadzaliśmydotejpory
.Jed-
nakmożesięonarównieżokazaćprzydatnapodczaswykonywaniatypowychzadań
konserwacyjnychpolegającychnawstawianiulubmodyfikacjipojedynczychwierszy
,
gdywierszjestmodyfikowany
,oileistniejeorazwstawianywprzeciwnymprzypadku.
Taoperacjabywanazywanaoperacją„upsert”,zewzględunarealizacjęoperacjiUPDA-
TElubINSERT.Wymagaonasprawdzenia,czydanywierszistnieje,wceluokreślenia
czypotrzebnajestmodyfikacjabądźteżwstawienie.
Przyjrzymysiędwómproceduromskładowanymstanowiącymimplementacjeope-
racjiupsertprzyużyciuinstrukcjiMERGE.Pierwszastanowiuproszczonąwersję,która
nieobejmujeparametrówwyjściowych,wartościidentyfikatorówaniopcjiwspółbież-
ności.Pojejomówieniuzajmiemysiędrugąwersją,którawspierawszystkiepowyższe
elementyimogłabyzostaćzpowodzeniemzastosowanawrzeczywistejaplikacji.