Treść książki

Przejdź do opcji czytnikaPrzejdź do nawigacjiPrzejdź do informacjiPrzejdź do stopki
Parametryowartościachtablicowych
61
Coświęcejniżkolejnerozwiązanie
opartenatabelitymczasowej
Parametrytablicoweopierająsięnazdefiniowanychprzezużytkownikatablicowychtypach
danych,któretworzonejakoopisschematuzestawuwierszyprzekazywanychdopro-
ceduryskładowanejlubfunkcjizdefiniowanejprzezużytkownika.Zrozumieniedzia-
łaniaparametrówtablicowychbędziełatwiejsze,jeślinajpierwporównamyjezinny-
mipodobnymikonstrukcjami„zbiorowymi”,takimijakzmiennetablicowe,tabele
tymczasowelubwspólnewyrażeniatablicowe(CTECommonTableExpression).
Wszystkietekonstrukcjeoferująźródłodanychtablicowych,któremożebyćodpyty-
waneiłączonezinnymitabelami,awięcniemalwkażdejsytuacjiparametrytablico-
we,zmiennetablicowe,tabeletymczasoweorazwyrażeniaCTEmogąbyćtraktowane
jakzwykłetabelelubwidoki.
WprzypadkuwyrażeńCTEorazzmiennychtablicowychdaneichwierszyprze-
chowywanewpamięcioilezbiórtychwierszyniejestzbytdużyiniepowoduje
przepełnieniaalokowanegowpamięciRAMbuforu,gdyżwówczasdanetezostają
zapisanewbaziedanychtempdb.Natomiastdaneparametrówtablicowychzawsze
przechowywanewbaziedanychtempdb.Podczaszapełnianiaparametrutablicowego
jegowartościamiserwerSQLServertworzywtabelęwbaziedanychtempdb,która
będzieużywanadoprzechowywaniawartościtegoparametrupodczasichprzekazy-
waniazjednejproceduryskładowanejlubfunkcjizdefiniowanejprzezużytkownika
dodrugiej.GdyparametrtablicowyznajdziesiępozazakresemkoduwjęzykuT-SQL,
bazadanychtempdbzostanieautomatycznieoczyszczonaprzezserwerSQLServer.
Programistanigdyniebędziezmuszonydobezpośredniejinterakcjizbaządanych
tempdb,ponieważparametrytablicowezapewniającałkowitąabstrakcjętejwarstwy
.
Prawdziwamocparametrówtablicowychleżywichzdolnościdoprzekazywania
zapomocąjednegoparametrucałychtabel(lubzbiorówwierszy)pomiędzyklientem
aserweremlubpomiędzynapisanymiwjęzykuT-SQLproceduramiskładowanymi
ifunkcjamizdefiniowanymiprzezużytkownika.Dlaporównania,zmiennetablicowe
itabeletymczasoweniemogąbyćprzekazywanejakoparametry
.Natomiastzakres
wspólnychwyrażeńtablicowych(CTE)ograniczonyjestdoinstrukcjinastępującej
bezpośredniopoichutworzeniu,awięcznaturyrzeczyniemogąonebyćprzekazy-
wanejakoparametry
.
Innąubocznązaletąparametrówtablicowychjestmożliwośćichwielokrotnego
używania.Schematyparametrówtablicowychutrzymywanecentralnie,czyliina-
czejniżwprzypadkuzmiennychtablicowych,tabeltymczasowychiwyrażeńCTE.
Schemattakiegoparametrudefiniujesiętylkorazpoprzezutworzeniezdefinio-
wanegoprzezużytkownikatablicowegotypudanych,którynastępniemożnaużyć
winstrukcjiCREATETYPEzapomocąklauzuliASTABLE,takjaktozostałopokazane
wlistingu2-1.