Kompiuteriai, Duomenų bazės
"SQL saugomas procedūras: kurti ir naudoti
SQL saugomas procedūras vykdomąjį programinės įrangos modulis, kuris gali būti saugomas duomenų bazėje įvairių objektų formą. Kitaip tariant, tai yra objektas, kuriame yra SQL-pareiškimą. Šie saugomas procedūras, gali būti vykdomas kliento programai gauti gerus rezultatus. Be to, tokie įrenginiai dažnai vadinami iš kitų scenarijų ar net iš bet kurio kito skyriaus.
įvedimas
Daugelis žmonių tiki, kad jie yra panašūs į įvairių procedūrų aukšto lygio programavimo kalbų (atitinkamai, išskyrus MS SQL). Galbūt tai yra tiesa. Jie turi panašias parametrus, jie gali išleisti panašią vertę. Be to, kai kuriais atvejais, jie liestis. Pavyzdžiui, jie kartu su duomenų bazių DDL ir DML duomenimis, taip pat naudodamas vartotojo funkcijų (kodinis pavadinimas - UDF).
Tiesą sakant saugomi SQL procedūros turi platų privalumų, kad atskirti juos tarp tokių procesų. Sauga, kintamumas programavimo našumas - visa tai traukia vartotojus darbo su duomenų bazėmis, vis daugiau ir daugiau. Populiarumo piko atėjo procedūras 2005-2010 metų, kai aš gavau programą iš "Microsoft" ir pavadino «SQL Server Management Studio». Su jo pagalba, darbas su duomenų bazėmis tapo daug lengviau, praktiškas ir patogiau. Metai po metų, tai informacijos perdavimo metodas įgijo populiarumą programavimo aplinką. Šiandien MS SQL Server yra visiškai įprasta programa, kuri vartotojams "bendrauti" su duomenų bazėmis, stovėjo ant susilygino su "Excel".
Kai Jūs skambinate procedūrą, ji iš karto apdorojami serverio be nereikalingų procesų ir vartotojo įsikišimo. Tada galite atlikti bet kokius veiksmus su informacija: delete, vykdymas, pokyčių. Per visa tai yra DDL-operatoriaus, kuris vienas šimtų atlikti sudėtingus veiksmus dėl šių objektų. Ir visa tai vyksta labai greitai, o serveris iš tikrųjų nėra įkeltas. Tai greitis ir našumas leidžia jums greitai perkelti didelius informacijos kiekius iš vartotojo iki serverio ir atvirkščiai.
Įgyvendinti šį darbą su informacija, yra keletas programavimo kalbos technologijas. Tai apima, pavyzdžiui, PL / SQL iš duomenų bazių valdymo sistema "Oracle", psql į InterBase ir Firebird sistemų, taip pat klasikinis "maykrosoftovskih» Transact-SQL. Visi jie yra skirti sukurti ir paleisti saugomas procedūras, kad būtų galima naudoti savo algoritmus didelę duomenų bazę tvarkytojai. Tai būtina ir siekiant užtikrinti, kad tie, kurie atlieka valdymą tokią informaciją gali apsaugoti visus objektus iš neįgaliotiems tretiesiems asmenims, todėl kūrimo, pakeitimo ar išbraukimo tam tikrus duomenis.
produktyvumas
Šios duomenų bazės objektus galima užprogramuoti skirtingais būdais. Tai leidžia vartotojams pasirinkti proceso, kad būtų tinkamiausia rūšis, kuri sutaupys laiko ir energijos. Be to, pati procedūra yra tvarkomi, taip išvengiant didžiulį praleistą laiką bendravimo tarp serverio ir vartotojo. Modulis gali būti perprogramuoti ir pakeitė teisinga kryptimi absoliučiai bet kuriuo metu. Ypač verta paminėti, greitį, su kuriuo SQL saugomas procedūras pradėti įvyksta: procesas yra greitesnis kiti panašūs į jį, todėl patogus ir universalus.
saugumas
Šis informacijos apdorojimo tipas skiriasi nuo panašių procesų, kad ji suteikia didesnį saugumą. Tai užtikrina, kad kiti vartotojai pasiekti procedūrų gali būti pašalinti visiškai. Tai leis administratorius atlikti operacijas su jais savarankiškai, be baimės perėmimo ar neteisėtos prieigos prie duomenų bazės.
duomenų perdavimas
Bendravimas tarp saugomi SQL procedūros ir kliento programos yra naudoti parametrus ir grįžti vertybes. Pastaroji yra ne būtina perduoti duomenis į saugomas procedūras, tačiau informacija (daugiausia nuo vartotojo pageidavimu), ir tvarkomi SQL. Kai saugomi tvarka baigė savo darbą, ji siunčia duomenų paketus atgal (bet vėlgi, jei pageidaujama) į skambinate taikymo naudojant metodus, kuriais gali būti įgyvendinama kaip skambučio į saugomi SQL procedūros ir grąžinimo, pavyzdžiui įvairovė:
- duomenų perdavimo per išėjimo parametro tipo;
- duomenų perdavimo per grąžinimo pareiškimo;
- Duomenų perdavimo operatorius pasirenkamas skambučio.
Ir dabar pažvelgti, kaip šis procesas atrodo taip pat vidų.
1. Sukurti EXEC-saugomi SQL procedūros
Galite sukurti procedūrą MS SQL (Managment Studio). Po procedūros yra sukurta, ji yra įtraukta į programuojamu duomenų bazės mazgo, kuriame procedūra atliekama pagal sukūrimo operatoriui. Vykdyti SQL saugomas procedūras naudojant EXEC-procesas, kuriame objekto pavadinimą.
Kuriant pavadinimas kilęs pirmąją procedūrą, ir tada vieną ar daugiau parametrų, kurie jam pavestas. Parametrai gali būti neprivalomas. Po parametras (-ai), ty procedūros kūno, turi būti parašyta, kad būtina atlikti tam tikrus būtinus veiksmus.
Tas faktas, kad kūnas gali turėti lokalių kintamųjų, esančių joje, o šie kintamieji yra vietos ir atsižvelgiant į procedūras. Kitaip tariant, jie gali būti laikomi tik per kūno procedūros Microsoft SQL Server. Saugomas procedūras, šiuo atveju yra laikomas vietiniu.
Taigi, siekiant sukurti procesą, turime procedūra vardą ir bent vieną parametrą, nes procedūra kūnui. Atkreipkite dėmesį, kad puikus pasirinkimas šiuo atveju yra sukūrimas ir įgyvendinimas procedūroms su schemos pavadinimas klasifikatoriuje.
Procedūra kūnas gali turėti bet kokį operatorių SQL natūra, pavyzdžiui, tokių kaip sukurti lentelę, įterpti vieną ar daugiau eilučių lentelės steigimo duomenų bazės tipą ir pobūdį ir pan. Nepaisant to, ši procedūra kūno riboja kai kurias operacijas į jį. Kai kurie iš svarbiausių apribojimų yra išvardytos žemiau:
- kūnas nesukuria jokio kito saugomi tvarka;
- organizmas negali sukurti klaidingą įspūdį apie objektą;
- organizmas negali sukurti jokių trigerius.
2. Nustatykite kintamąjį procedūros kūno
Jūs galite padaryti kintamieji vietos į kūno procedūros, ir tada jie bus per procedūrą kūno. Gera praktika yra sukurti kintamąjį ties saugomi procedūra kūno pradžioje. Bet jūs taip pat galite nustatyti kintamuosius bet kurioje objekto kūną.
Kartais galima pastebėti, kad kai kurie kintamieji yra nustatyti toje pačioje eilutėje, ir kiekvienas kintamasis atskirtos kableliais. Taip pat atkreipkite dėmesį, kad kintamasis yra su priešdėliu @. Atsižvelgiant į procedūrą organizmo, galite nustatyti kintamąjį į kurį norite. Pavyzdžiui, kintamasis @ NAME1 gali būti paskelbta link procedūros kūno pabaigoje. Norint priskirti vertę kintamojo paskelbė naudojant asmens duomenų rinkinį. Priešingai nei situacijos, kai deklaruota daugiau nei vienas kintamasis toje pačioje eilutėje, tik vienas rinkinys asmens duomenų, naudojamų šioje situacijoje.
Vartotojai dažnai užduoda klausimą: "Kaip priskirti kelias reikšmes vienu ataskaitoje procedūros kūno" Na?. Įdomus klausimas, bet tai daug lengviau, nei jūs manote. Atsakymas: su tokių porų pagalba, kaip «Pasirinkite var = vertė". Galite naudoti šias poras, atskirdami juos kableliais.
3. Sukurkite SQL saugomi tvarka
Be įvairiausių pavyzdžių žmonių parodyti sukurti paprastą saugomi procedūrą ir vykdyti ją. Tačiau ši procedūra gali užtrukti tokius parametrus, kad pašaukimas procesas jis turės vertę arti (bet ne visada). Jei jie nesutampa, tada pradeda atitinkamus procesus organizme. Pavyzdžiui, jei kuriate procedūrą, kuri imsis miestą ir regioną iš skambinančiojo ir grąžinti duomenis apie tai, kiek autoriai nurodo atitinkamo miesto ir regiono. Procedūra bus užklausą duomenų bazės lentelės autorių, pavyzdžiui, barai, atlikti šį skaičiavimą autoriams. Norėdami gauti šias duomenų bazes, pavyzdžiui, "Google" atsisiuntimai SQL scenarijų su SQL2005 puslapyje.
Ankstesniame pavyzdyje, procedūra trunka du parametrai, kurie anglų kalba būtų vadinama sąlyginai @State ir @City. Duomenų tipas atitinka tipą, nurodytą paraiškoje. Procedūra kūnas turi vidiniai kintamieji @TotalAuthors (visi autoriai), ir šis kintamasis yra naudojamas rodyti jų skaičių. Kitas ateina skyrių atranka paprašyti, kad visi skaičiuoja. Galiausiai apskaičiuojama vertė rodoma išėjimo lango naudojant spausdinimo pareiškimą.
Kaip atlikti SQL saugomi tvarka
Yra du būdai atlikti procedūrą. Pirmasis būdas yra parodyta artimųjų parametrus atskirtų kableliais sąrašas daroma po procedūros pavadinimu. Tarkime, turime dvi reikšmes (kaip ir ankstesniame pavyzdyje). Šios vertybės yra renkami naudojant kintamuosius ir @State @City procedūrą. Taikant šį metodą, svarbūs parametrai perdavimo tvarka. Šis metodas yra vadinamas perdavimo seka argumentais. Per antrąjį metodą, parametrai jau priskirti tiesiogiai, tokiu atveju nurodymas nėra svarbus. Šis antrasis metodas yra žinomas kaip į nurodytų argumentų perdavimo.
Ši procedūra gali šiek tiek nukrypti nuo tipiškas. Viskas tas pats, kaip ir ankstesniame pavyzdyje, bet parametrai yra čia pasikeitė tik. Tai yra @City parametras yra saugomi pirmas, ir @State saugomi šalia numatytosios vertės. Numatytasis nustatymas yra paprastai skiriama atskirai. SQL saugomas procedūras, yra paprasti parametrai. Tokiu atveju, jei parinktis "« Utena "pakeičia numatytąją vertę" ca ". Antrajame įsikūnijimas eina tik vienas argumentas vertę @City ir @State pasirinkimas pagal nutylėjimą "ca". Patyrę programuotojai pranešė, kad visi numatytieji kintamieji yra arčiau parametro sąrašo pabaigoje. Priešingu atveju, vykdymas yra neįmanomas, tada jūs turite dirbti su pavadinimu argumentų, kad ilgiau ir sudėtingų perdavimo.
4. saugomas procedūras SQL Server: grąžinimo būdus
Yra trys pagrindiniai būdai, kaip siųsti saugomus vadinamas tvarkos duomenis. Jie išvardyti toliau:
- grįžti vertės saugomi procedūra;
- Išėjimo parametrų saugomas procedūras;
- Pasirinkite vieną iš saugomų procedūrų.
4.1 Grįžti vertės SQL saugomas procedūras
Taikydami šią procedūrą, procedūra nustato vietos kintamojo vertę ir grąžina ją. Ši procedūra taip pat gali tiesiogiai grąžinti pastovią vertę. Toliau pateiktame pavyzdyje, mes sukūrėme procedūrą, kuri grąžina skaičių rėmėjų. Jei mes palyginti tai su ankstesniu procedūros, jūs galite pamatyti, kad spausdinimo vertę pakeičiamas atvirkščiai.
Dabar pažvelkime, kaip atlikti procedūrą ir rodyti vertę, grąžinti ją. Procedūrų atlikimą, privalo nustatyti ir kintama spauda, kuri atliekama po proceso. Atkreipkite dėmesį, kad vietoj spausdinimo operatorius gali naudoti Pasirinkite operatorių, pavyzdžiui, pasirinkite @RetValue ir OutputValue.
4,2 Išėjimo Parametras "SQL saugomas procedūras
Atsako vertė gali būti naudojama grąžinti vieną kintamąjį, matėme ankstesniame pavyzdyje. Naudojant Output leidžia procedūrą siųsti vieną ar daugiau kintamųjų skambinančiojo. Išėjimo parametras žymimas kaip kartą šį raktinį žodį «išėjimas» kuriant procedūrą. Jeigu parametras yra nurodyta kaip išėjimo parametro, procedūra objektas turi priskirti jai vertę. Saugomas procedūras SQL pavyzdžiai, iš kurių galima matyti žemiau, tokiu atveju grįžimas į galutinę informaciją.
Šiame pavyzdyje, ten bus du savaitgaliai pavadinimas: @TotalAuthors ir @TotalNoContract. Jie nurodyta parametrų sąrašą. Šie kintamieji yra priskirti reikšmes per procedūrą kūno. Kai mes naudojame išvesties parametrus, skambinantysis gali matyti nustatytą procedūroje kūno vertę.
Be to, praėjusiais scenarijų, du kintamieji būtų deklaruojami pamatyti vertybes, kurios yra įdiegtas saugomas procedūras, MS SQL Server, kaip išėjimo parametro. Tada procedūra atliekama taikant normaliąją vertę «CA» parametrą. Šie parametrai yra išėjimas, todėl paskelbė kintamieji yra priimtas nustatyta tvarka. Atkreipkite dėmesį, kad kai kintamasis produkcija raktažodis pat čia nurodyta. Po procedūros sėkmingai, grąžinta reikšmė naudojant išvesties parametrų rodomi pranešimo langą.
4.3 Pasirinkus SQL saugomas procedūras
Šis metodas yra naudojamas grąžinti nustatytą formą lentelė Duomenų vertės (RecordSet) šaukimo saugomi procedūrą. Šiame pavyzdyje, "SQL saugomi procedūrą su parametrais @AuthID prašo stalo" autoriai "filtruojant įrašus grąžinamus Šis parametras @AuthId. Pasirinkite operatorius nusprendžia, kas turėtų būti grąžintas į paskambinę saugomi procedūrą. Kai saugomi procedūra AuthId perduodami atgal. Tokia procedūra yra visada grąžina tik vieną įrašą arba visai. Tačiau saugomi procedūra neturi dėl daugiau nei vieną įrašą grąžinimo apribojimus. Dažnai pavyzdžių galima rasti, kurioje į abi puses duomenys pasirinktus naudojant parametrus su apskaičiuotų kintamųjų yra padaryta teikiant viso keletos reikšmių.
užbaigiant
Išimtą procedūra yra gana rimtas programa, grąžinti arba perleisti, taip pat nustatant būtinų kintamųjų dėl kliento programos. Kadangi saugomi procedūra yra vykdoma apie patį serverį, galima išvengti duomenų mainai dideliais kiekiais tarp serverio ir kliento programos (kai skaičiavimai). Tai leidžia sumažinti apkrovą SQL serverį, kuris, žinoma, yra jų turėtojų rankomis. Vienas iš porūšiai yra saugomas procedūras, T SQL, tačiau jų tyrimas yra reikalingas tiems, dalyvauja įspūdingų duomenų bazę. Taip pat yra didelė, net didžiulis niuansų, kurie gali būti naudingi saugomas procedūras tyrimo, tačiau tai reikia tiems, kurie planuoja daryti stora programavimo, įskaitant profesionaliai.
Similar articles
Trending Now