Kompjuters, Databases
SQL maħżuna proċeduri: joħolqu u l-użu
SQL maħżuna proċeduri huma eżekutibbli modulu softwer li jistgħu jkunu maħżuna fil -database fil-forma ta 'oġġetti varji. Fi kliem ieħor, huwa oġġett li fih SQL-dikjarazzjoni. Dawn il-proċeduri maħżuna jistgħu jiġu esegwiti fl-applikazzjoni klijent li jiksbu prestazzjoni tajba. Barra minn hekk, dawn il-faċilitajiet huma spiss imsejħa minn skripts oħra jew anke minn xi taqsima oħra.
introduzzjoni
Ħafna nies jemmnu li huma simili għall-proċeduri tad-diversi lingwi ta 'programmar ta' livell għoli (rispettivament, ħlief għall-SM SQL). Forsi dan huwa veru. Huma għandhom parametri simili, huma jistgħu joħorġu valur simili. Barra minn hekk, f'xi każijiet, huma jiġu f'kuntatt. Per eżempju, dawn huma magħquda ma 'databases tal DDL u d-data DML, kif ukoll funzjonijiet utent (kodiċi isem - UDF).
proċeduri SQL Attwalment maħżuna jkollhom firxa wiesgħa ta 'vantaġġi li jiddistingwu lilhom fost dawn il-proċessi. -Sikurezza, il-varjabilità produttività programmazzjoni - dan kollu jattira utenti li jaħdmu ma 'databases, aktar u aktar. Il-quċċata tal-popolarità daħal proċeduri għas-snin 2005-2010, meta sirt l-programm mill- "Microsoft" taħt l-isem "SQL Server Ġestjoni Studio". Bl-għajnuna tagħha, ix-xogħol ma 'databases sar ħafna eħfef, aktar prattiku u aktar konvenjenti. Sena wara sena, dan il -metodu ta 'trasmissjoni ta' informazzjoni miksuba popolarità fl-ambjent ta 'programmazzjoni. Illum, MS SQL Server huwa programm assolutament normali, li għall-utenti għal "jikkomunikaw" ma 'databases, kien fuq l-istess livell ma' "Excel".
Meta inti sejħa-proċedura, huwa istantanjament pproċessata mill-server mingħajr proċessi bla bżonn u intervent utent. Tista 'mbagħad iwettqu xi azzjoni bl-informazzjoni: tħassir, eżekuzzjoni, bidla. Matul dan kollu huwa fil-DDL-operatur, li waħeda jwettqu azzjonijiet kumplessi min dawk l-oġġetti. U dan kollu jiġri malajr ħafna, u s-server ma attwalment mgħobbija. Din il-veloċità u l-produttività tavżak malajr trasferiment ammonti kbar ta 'informazzjoni mill-utent għall-server u viċi versa.
Biex timplimenta dan ix-xogħol bl-informazzjoni, hemm diversi teknoloġiji lingwi ta 'programmar. Dawn jinkludu, per eżempju, PL / SQL mis- sistema ġestjoni ta 'database Oracle, PSQL fis InterBase u sistemi Firebird, kif ukoll il-klassiċi "maykrosoftovskih» jmexxu-SQL. Kollha kemm huma maħsuba biex joħolqu u jmexxu proċeduri maħżuna, li tippermetti biex tuża algoritmi tagħhom stess fuq handlers database kbar. Huwa meħtieġ u biex jiġi żgurat li dawk li jwettqu ġestjoni ta 'tali informazzjoni, tista' tipproteġi l-oġġetti kollha minn partijiet terzi mhux awtorizzati u, għalhekk, il-ħolqien, il-modifika jew it-tħassir ta 'ċerta dejta.
produttività
Dawn l-oġġetti database tista 'tiġi pprogrammata b'modi differenti. Dan jippermetti lill-utenti biex jagħżlu t-tip ta 'proċess li tkun l-aktar xierqa, li jiffranka ħin u enerġija. Barra minn hekk, il-proċedura nnifisha hija pproċessata, u b'hekk tiġi evitata ħin enormi jintefqu fuq il-komunikazzjoni bejn is-server u l-utent. Il-modulu tistax tiġi programmata u mibdula fid-direzzjoni t-tajba fi assolutament kwalunkwe ħin. Speċjalment min jinnota l-ħeffa li biha l-tnedija ta 'proċedura SQL maħżuna iseħħ: il-proċess huwa aktar mgħaġġel oħra simili għaliha, jagħmilha konvenjenti u versatili.
sigurtà
Dan it-tip ta 'ipproċessar differenti minn proċessi simili fis-sens li tipprovdi sigurtà msaħħa. Dan huwa żgurat mill-fatt li utenti oħra mill-proċeduri li jaċċessaw jista 'jiġi eliminat għal kollox. Dan se jippermetti l-Amministratur li jwettqu operazzjonijiet magħhom b'mod indipendenti, mingħajr biża 'interċettazzjoni jew aċċess mhux awtorizzat għad-database.
trasferiment tad-data
Komunikazzjoni bejn proċedura SQL maħżuna u l-applikazzjoni tal-klijent huwa l-użu l-parametri u l-valuri ritorn. Dan ma jkunx meħtieġ li jittrażmettu d-data għal proċedura maħżuna, iżda l-informazzjoni (l-aktar fuq talba l-utent) u pproċessat għall SQL. proċedura ladarba maħżuna temm xogħol tagħha, tibgħat il-pakketti tad-data lura (iżda, għal darb'oħra, jekk mixtieq) għall-applikazzjoni ssejjaħ jużaw varjetà ta 'metodi li permezz tagħhom jistgħu jiġu implimentati bħala sejħa għal proċedura SQL maħżuna u r-ritorn, per eżempju:
- trasmissjoni ta 'data permezz ta' tip parametru Riżultat;
- trasmissjoni ta 'data permezz tal-istqarrija ritorn;
- Trasmissjoni ta 'data permezz ta' għażla trasportatur.
U issa nħarsu lejn kif dan il-proċess jistenna l-istess ġewwa.
1. Oħloq EXEC-maħżuna fil-proċedura SQL
Tista 'tinħoloq proċedura fl-MS SQL (Management Studio). Wara l-proċedura hija maħluqa, din hija elenkata fl-node database programmabbli, fejn il-proċedura hija mwettqa mill-operatur tal-ħolqien. Sabiex teżegwixxi SQL maħżuna proċeduri tuża EXEC-proċess li fih l-isem oġġett.
Meta jkun qed jinħoloq l-isem jiġi l-ewwel proċedura, u mbagħad għamlet parametru wieħed jew aktar li huma assenjati lilu. Parametri jistgħu ma jkunux obbligatorji. Wara l-parametru (i), jiġifieri l-korp tal-proċedura, li tkun miktuba, jeħtieġ biex iwettaq xi operazzjonijiet meħtieġa.
Il-fatt li l-korp jista 'jkollhom varjabbli lokali, li jinsabu fiha, u dawn il-varjabbli huma lokali u b'rabta mal-proċeduri. Fi kliem ieħor, dawn jistgħu jiġu kkunsidrati biss fil-trattamenti tal-ġisem Microsoft SQL Server. proċeduri Maħżuna f'dan il-każ huma kkunsidrati lokali.
Għalhekk, biex jinħoloq proċess, għandna bżonn isem proċedura u parametru inqas wieħed bħala korp proċedura. Jekk jogħġbok innota li għażla eċċellenti f'dan il-każ hija l-ħolqien u l-implimentazzjoni ta 'proċeduri ma' isem schema fil-klassifikatur.
Il-korp proċedura jista 'jkollhom kwalunkwe tip ta' operaturi SQL, per eżempju, bħall-ħolqien ta 'tabella, li jdaħħal ringiela waħda jew aktar tal-mejda, jistabblixxi x'tip database u l-karattru, u l-bqija. Madankollu, il-korp proċedura jirrestrinġi xi operazzjonijiet fiha. Uħud mil-limitazzjonijiet l-aktar importanti huma elenkati hawn taħt:
- il-korp ma toħloq ebda proċedura oħra maħżuna;
- il-korp m'għandhiex toħloq impressjoni falza dwar l-oġġett;
- il-korp ma toħloq l-ebda jqajjem.
2. Issettja l-varjabbli fil-ġisem tal-proċedura
Inti tista 'tagħmel varjabbli lokali għall-proċedura tal-ġisem, u allura dawn se jkunu fi ħdan korp proċedura. Prattika tajba hija li jinħoloq varjabbli fil-bidu tal-ġisem maħżuna proċedura. Iżda int tista 'wkoll jissettja varjabbli kullimkien fil-ġisem tal-oġġett.
Kultant tista 'tinnota li xi varjabbli huma stabbiliti fl-istess ringiela, u kull varjabbli separati b'virgola. jinnota wkoll li l-varjabbli huwa prefissi bil @. Fil-ġisem tal-proċedura, inti tista 'tistabbilixxi varjabbli li trid. Per eżempju, varjabbli @ NAME1 jistgħu jiġu mħabbra lejn it-tmiem tal-ġisem proċedura. Sabiex jingħatalhom valur għal varjabbli ddikjarat li tuża sett ta 'data personali. B'kuntrast mas-sitwazzjoni meta varjabbli aktar minn wieħed iddikjarat fl-istess filliera, sett wieħed biss ta 'data personali użata f'din is-sitwazzjoni.
Utenti spiss jistaqsu l-mistoqsija: "Kif tassenja valuri multipli fi stqarrija wieħed fil-korp tal-proċedura" Well?. Interessanti kwistjoni, iżda dan huwa ħafna aktar faċli milli taħseb. It-tweġiba: bl-għajnuna ta 'dawk pari bħala "Agħżel Var = valur". Tista 'tuża dawn il-pari, separati minn virgoli.
3. Oħloq SQL maħżuna proċedura
Fil-varjetà wiesgħa ta 'eżempji ta' nies juru tinħoloq proċedura maħżuna sempliċi u esegwit. Madankollu, il-proċedura tista 'tieħu dawn il-parametri li l-proċess ssejjaħ ser ikollha valur qrib tiegħu (iżda mhux dejjem). Jekk dawn jaqblu, allura jibda l-proċessi korrispondenti fil-ġisem. Per eżempju, jekk inti toħloq proċedura li se tieħu l-belt u r-reġjun mill-sejjieħ u jirritorna l-informazzjoni dwar kemm l-awturi jirreferu għall-belt u r-reġjun korrispondenti. Il-proċedura se query tabella database ta 'awturi, per eżempju, Pubs, għat-twettiq dan awturi kalkolu. Biex tikseb dawn id-databases, per eżempju, il-Google downloads il-iskrittura SQL ma 'paġna SQL2005.
Fl-eżempju preċedenti, il-proċedura tieħu żewġ parametri, li bl-Ingliż se jiġu msejħa kondizzjonalment @State u @City. It-tip ta 'data tikkorrispondi għat-tip speċifikat fl-applikazzjoni. Il-korp proċedura għandha varjabbli interni @TotalAuthors (awturi kollha), u dan il-varjabbli hi użata biex juri n-numru tagħhom. Li jmiss taqa sezzjoni talba għażla li l-għadd. Fl-aħħarnett, il-valur ikkalkulat hija murija fit-tieqa output jużaw l-istqarrija istampar.
Kif biex iwettqu SQL maħżuna proċedura
Hemm żewġ modi biex iwettqu l-proċedura. L-ewwel mod huwa muri billi tgħaddi parametri bħala lista separata bil-virgoli isir wara l-isem proċedura. Ejja ngħidu għandna żewġ valuri (bħal fl-eżempju preċedenti). Dawn il-valuri huma miġbura bl-użu varjabbli u l-proċedura @State @City. F'dan il-metodu, parametri importanti tal-ordni trasmissjoni. Dan il-metodu huwa msejjaħ il-sekwenza trasmissjoni ta 'argumenti. Fit-tieni metodu, il-parametri huma diġà assenjati direttament, f'liema każ l-ordni mhix importanti. Dan it-tieni metodu huwa magħruf bħala l-trasmissjoni ta 'argumenti msemmija.
Il-proċedura tista 'ftit jiddevjaw mill-tipiċi. Kollha l-istess, bħal fl-eżempju preċedenti, iżda l-parametri jiġu trasferiti hawn biss. Dan huwa parametru @City huwa maħżun ewwel, u @State maħżuna ħdejn il-valur ta 'default. Ssettjar ta 'default huwa normalment allokat separatament. SQL maħżuna proċeduri huma f'parametri kif sempliċi. F'dan il-każ, sakemm l-għażla "l UT" jissostitwixxi l-valur ta 'default ta' "CA". Fit-tieni inkarnazzjoni jgħaddi biss valur argument wieħed għall @City, u nuqqasijiet għażla @State għal "CA". programmaturi b'esperjenza huma avżati li l-varjabbli default jinsabu eqreb lejn l-aħħar tal-lista parametru. Inkella, l-eżekuzzjoni ma jkunx possibbli, allura inti għandek taħdem mat-trasferiment ta 'argumenti msemmija li l-twila u kkumplikata.
4. Proċeduri maħżuna SQL Server: modi ta 'ritorn
Hemm tliet modi ewlenin biex jibagħtu data maħżuna fil-proċedura msejħa. Dawn huma elenkati hawn taħt:
- valuri ta 'ritorn proċedura maħżuna;
- parametru Riżultat maħżuna proċeduri;
- Agħżel waħda mill-proċeduri maħżuna.
4.1 valuri Ritorn tal SQL maħżuna proċeduri
F'din il-proċedura, il-proċedura tistabbilixxi l-valur tal-varjabbli lokali u jibgħatha lura. Il-proċedura tista 'wkoll ritorn b'mod dirett valur kostanti. Fil-eżempju li ġej, ħloqna proċedura li jirritorna l-għadd totali ta 'sponsors. Jekk inqabblu din il-proċedura preċedenti, tista 'tara li l-valur ta' l-istampar hija mibdula b'dan il-maqlub.
Issa ejja nħarsu lejn kif iwettqu l-proċedura u juru l-valur, jirritornaha. proċeduri li jwettqu meħtieġa tistabbilixxi u l-istampar varjabbli, li jsir wara l-proċess. Avviż li minflok ta 'stampar operatur jista' juża l Agħżel-operatur, per eżempju, @RetValue Agħżel, u OutputValue.
4.2 proċeduri Riżultat Parametru SQL maħżuna
Il-valur rispons jista 'jintuża biex jirritornaw varjabbli waħda li rajna fl-eżempju preċedenti. Uża l-Output tippermetti l-proċedura li tibgħat varjabbli waħda jew aktar lill-parti sejħa. parametru output hija murija bħala ħin din il-kelma ewlenija «output» meta jinħoloq proċedura. Jekk il-parametru huwa speċifikat bħala parametru produzzjoni, il-proċedura oġġett iridu tassenja din valur. proċeduri Maħżuna SQL, li eżempji tagħhom jistgħu jidhru hawn taħt, f'każ bħal dan jirritorna għall-informazzjoni finali.
F'dan l-eżempju, se jkun hemm żewġ weekends isem: @TotalAuthors u @TotalNoContract. Dawn huma speċifikati fil-lista parametru. Dawn il-varjabbli huma assenjati valuri fil-ġisem proċedura. Meta nużaw il-parametri output, l-sejjieħ jista 'jara l-valur stabbilit fil-ġisem proċedura.
Barra minn hekk, fix-xenarju preċedenti, żewġ varjabbli huma ddikjarati biex tara d-valuri li huma installati maħżuna proċeduri, MS SQL Server bħala parametru output. Imbagħad il-proċedura hija mwettqa bl-applikazzjoni tal-valur normali "AI" parametru. Il-parametri li ġejjin huma l-produzzjoni u, għalhekk, iddikjarata varjabbli huma mgħoddija bil-mod preskritt. Jekk jogħġbok innota li meta keyword produzzjoni varjabbli wkoll speċifikat hawn. Wara l-proċedura tkun tlestiet b'suċċess, il-valur irritornat bl-użu tal-parametri output huma murija fuq il-tieqa messaġġ.
4.3 Għażla ta 'SQL maħżuna proċeduri
Din it-teknika hija użata biex jirritorna sett fil-valuri ta 'dejta f'forma ta' tabella (recordset) għas-sejħa ta 'proċedura maħżuna. F'dan l-eżempju, SQL maħżuna proċedura b'parametri @AuthID jitlob mejda "awturi" bil-filtrazzjoni-rekords mibgħuta lura minn din @AuthId parametru. operatur Agħżel jiddeċiedi x'għandu jingħata lura lill-sejħa għal proċedura maħżuna. Meta maħżuna proċedura AuthId trasmessi lura. Din il-proċedura hija dejjem jirritorna biss rekord wieħed jew xejn affattu. Madankollu, il-proċedura maħżuna ma jkollux xi restrizzjonijiet fuq ir-ritorn tad-dħul aktar minn waħda. Spiss eżempji jistgħu jinstabu li fihom id-dejta ritorn magħżula permezz ta 'parametri mal-varjabbli kkalkulati isir billi tipprovdi pluralità ta' valuri totali.
Bħala konklużjoni
Proċedura maħżuna huwa programm pjuttost serja, lura jew trasferit, kif ukoll jistabbilixxi l-varjabbli meħtieġa minħabba l-applikazzjoni tal-klijent. Peress li l-proċedura maħżuna tkun imwettqa fuq is-server innifsu, l-iskambju tad-data fil-volumi kbar bejn l-server u l-applikazzjoni tal-klijent (għal xi kalkoli) jistgħu jiġu evitati. Dan jagħmilha possibbli li jitnaqqas il-piż fuq il-SQL server, li, naturalment, huwa l-idejn ta 'detenturi tagħhom. Wieħed mill-subspeċi huma maħżuna proċeduri T SQL, iżda l-istudju tagħhom hija meħtieġa biex dawk involuti fil-ħolqien ta 'database impressjonanti. Hemm ukoll kbar, anke ammont kbir ta 'sfumaturi li jistgħu jkunu utli fl-istudju ta' proċeduri maħżuna, madankollu, din il-ħtieġa għal dawk li qed jippjanaw li jagħmlu programmazzjoni stretta, inkluż professjonalment.
Similar articles
Trending Now