Treść książki

Przejdź do opcji czytnikaPrzejdź do nawigacjiPrzejdź do informacjiPrzejdź do stopki
62
Rozdział2:RozszerzeniajęzykaT-SQL
LISTING2-1Definiowanieschematudlazdefiniowanegoprzezużytkownikatablicowegotypu
danych
CREATETYPECustomerUdtASTABLE
(Idint,
CustomerNamenvarchar(50),
PostalCodenvarchar(50))
Powyższainstrukcjadefiniujenowy
,zdefiniowanyprzezużytkownika,tablicowytyp
danychotrzechkolumnachinazwieCustomerUdt.Pozdefiniowaniutegotypumoż-
liwebędziedeklarowaniezmiennychzparametramitablicowymitypuCustomerUdt
izapełnianieichwierszamipasującymidotegoschematu,azarządzaniemtymidanymi
orazichzapisywaniemwbaziedanychtempdbbędziezakulisowozajmowałsięserwer
SQLServer.Wprzeciwieństwiedozwykłychzmiennychtablicowych,któreprze-
chowywanewpamięciRAMiniemogąbyćprzekazywanejakoparametry
,tezmienne
będąmogłybyćswobodnieprzekazywanepomiędzyproceduramiskładowanymi.Gdy
zmiennazparametremtablicowymzadeklarowanaprzyużyciutypuCustomerUdtf
znajdziesiępozazakresemkoduiniebędziejużużywana,serwerSQLServerauto-
matycznieusuniejejdanezbazytempdb.
Widzimywięc,żewrzeczywistościparametrytablicowetozasadniczozdefinio-
wanyprzezużytkownikatablicowytypdanych.Wypełnionedanymiinstancjetego
typumogąbyćprzekazywanejakoparametrydoprocedurskładowanychorazfunkcji
zdefiniowanychprzezużytkownikaczegonadalniemożnarobićzezwykłymizmien-
nymitablicowymi.Pozdefiniowaniutablicowegotypudanychmożliwejesttworzenie
procedurskładowanychużywającychparametrówtegotypuiprzekazywaniezaich
pomocącałychzbiorówwierszy
.
ParametrytablicowewyświetlanewoknieeksploratoraobiektówprogramuVisu-
alStudiowwęźleUser-DefinedTableTypes(Zdefiniowaneprzezużytkownikatablicowe
typydanych),będącymwęzłempodrzędnymwęzłówProgrammabilityiTypes,cozosta-
łopokazanenarysunku2-1(wtakisamsposóbwyświetlajerównieżeksplorator
obiektówzprogramuSQLServerManagementStudio).
Istniejewielepraktycznychzastosowańdlaprzekazywaniawformieparametrów
całychzbiorówdanychipozostałaczęśćtegopodrozdziałuzostaniepoświęconaomó-
wieniukilkuprzykładówtakichzastosowań.
Wysyłaniezamówień
Typowymscenariuszem,wktórymmożnazastosowaćparametrytablicowejestsystem
wprowadzaniazamówień.Złożenieprzezklientanowegozamówieniawymagautwo-
rzeniawbaziedanychnowegowierszazamówieniaorazróżnejliczbywierszyzpozy-
cjamitegozamówienia.Zwyklemożnatozrealizowaćtworzącdwieproceduryskłado-
wanejednąsłużącądowstawianiawierszazamówieniaidrugąsłużącądowstawiania
wierszyzpozycjamizamówienia.Aplikacjamożewówczaswywoływaćteprocedury