RekenaarsDatabasisse

SQL stored procedures: skep en gebruik

SQL stored procedures is uitvoerbare sagteware module wat in gestoor kan word in die databasis in die vorm van verskeie voorwerpe. Met ander woorde, dit is 'n voorwerp wat SQL-stelling bevat. Hierdie gestoor prosedures uitgevoer kan word in die kliënt aansoek om 'n goeie vertoning te kry. Daarbenewens is sulke fasiliteite dikwels genoem van ander skrifte of selfs van 'n ander artikel.

inleiding

Baie mense glo dat hulle is soortgelyk aan die prosedures van die verskillende hoë-vlak programmeringstale (onderskeidelik, behalwe vir MS SQL). Miskien is dit waar. Hulle het 'n soortgelyke parameters, hulle kan 'n soortgelyke waarde uit te reik. Verder, in sommige gevalle, kom hulle in aanraking kom. Byvoorbeeld, is hulle saam met databasisse van DDL en die DML data, sowel as gebruiker funksies (kodenaam - UDF).

Eintlik gestoor SQL prosedures het 'n wye verskeidenheid van voordele wat hulle onderskei tussen sulke prosesse. Veiligheid, variasie produktiwiteit programme - dit alles lok gebruikers werk met databasisse, meer en meer. Die hoogtepunt van gewildheid het prosedures vir die jaar 2005-2010, toe ek die program van die "Microsoft" onder die naam «SQL Server Management Studio». Met sy hulp, het werk met databasisse baie makliker, meer praktiese en makliker geword. Jaar na jaar, hierdie metode van oordrag van inligting gewild geword in die ontwikkeling omgewing. Vandag, MS SQL Server is absoluut normale program, wat vir gebruikers om "kommunikeer" met databasisse, staan op 'n gelyke voet met "Excel".

Wanneer jy die prosedure noem, is dit onmiddellik verwerk deur die bediener sonder onnodige prosesse en die gebruiker intervensie. skrap, uitvoering, verandering: jy kan dan enige aksie met die inligting uit te voer. Oor al hierdie dinge is in die DDL-operateur, wat eiehandig uit te voer komplekse aksies op daardie oogmerke. En dit alles gebeur baie vinnig, en die bediener nie eintlik gelaai. Hierdie spoed en produktiwiteit laat jy vinnig groot hoeveelhede inligting oor te dra van die gebruiker om die bediener en omgekeerd.

Om hierdie werk met die inligting te implementeer, is daar verskeie programmeertale tegnologie. Dit sluit, byvoorbeeld, PL / SQL uit die databasis management system Oracle, PSQL in Inter Base en Firebird stelsels, sowel as die klassieke "maykrosoftovskih» Transact-SQL. Almal van hulle is ontwerp om te skep en gestoor prosedures uit te voer, sodat jy om hulle eie algoritmes gebruik op 'n groot databasis hanteerders. Dit is nodig en om te verseker dat diegene wat die bestuur van sodanige inligting uit te voer, kan al die voorwerpe te beskerm teen ongemagtigde derde partye en dus die skepping, wysiging of skrapping van sekere data.

produktiwiteit

Hierdie databasis voorwerpe kan geprogrammeer word in verskillende maniere. Dit laat gebruikers toe om die tipe proses wat mees geskikte sal wees, wat tyd en energie bespaar kies. Daarbenewens is die prosedure self verwerk, dus groot tyd spandeer op kommunikasie tussen die bediener en die gebruiker te vermy. Die module kan herprogrammeer en verander in die regte rigting in absoluut enige tyd. Veral opmerklik die spoed waarmee die bekendstelling van SQL gestoor proses plaasvind: die proses is vinniger ander soortgelyk aan dit, maak dit 'n gerieflike en veelsydige.

veiligheid

Hierdie tipe van inligting verwerking verskil van soortgelyke prosesse in wat dit bied verbeterde sekuriteit. Dit is verseker deur die feit dat ander gebruikers toegang tot prosedures heeltemal uitgeskakel kan word. Dit sal toelaat dat die Administrateur om bedrywighede onafhanklik te voer met hulle, sonder vrees vir onderskepping of ongemagtigde toegang tot die databasis.

data-oordrag

Kommunikasie tussen 'n gestoor SQL prosedure en die kliënt aansoek is om die parameters te gebruik en om terug te keer waardes. Laasgenoemde is nie nodig om die data te stuur na 'n gestoor proses, maar die inligting (veral op versoek van die gebruiker se), en verwerk vir SQL. Sodra gestoor proses het sy werk voltooi, dit stuur die data pakkies terug (maar, weer, as jy wil) om die roeping aansoek met behulp van 'n verskeidenheid van metodes waarmee geïmplementeer kan word as 'n oproep tot 'n gestoor SQL prosedure en terugkeer, byvoorbeeld:

- oordrag van data via tipe Uitgawe parameter;

- oordrag van data via die terugkeer verklaring;

- oordrag Data via draer seleksie.

En nou kyk na hoe hierdie proses lyk dieselfde binnekant.

1. Skep EXEC-gestoor in die SQL prosedure

Jy kan 'n prosedure in MS SQL (Management Studio) te skep. Na afloop van die prosedure geskep word, is dit wat op 'n programmeerbare databasis node, in wat die prosedure uitgevoer word deur die operateur van die skepping. SQL stored procedures te voer met behulp van EXEC-'n proses wat die naam voorwerp bevat.

Wanneer die skep van die naam kom eerste prosedure, en dan het een of meer parameters wat aan hom toegeken is. Parameters kan opsioneel wees. Na afloop van die parameter (s), dit wil sê die liggaam van die prosedure, wat geskryf moet word, is dit nodig 'n paar nodige operasies uit te voer.

Die feit dat die liggaam kan plaaslike veranderlikes, geleë in dit, en hierdie veranderlikes is plaaslike en in verhouding tot die prosedures. Met ander woorde, kan hulle in aanmerking kom net binne die liggaam behandelings Microsoft SQL Server. Gestoor prosedures in hierdie geval word beskou as plaaslike.

Dus, om 'n proses te skep, moet ons 'n prosedure naam en ten minste een parameter as 'n prosedure liggaam. Neem asseblief kennis dat 'n uitstekende opsie in hierdie geval is die skepping en implementering van prosedures met 'n skedule naam in die klassifiseerder.

Die prosedure liggaam kan enige soort van operateurs SQL hê, byvoorbeeld, soos die skep van 'n tafel, plaas een of meer rye van die tabel, tot stigting van die tipe databasis en karakter, en so aan. Tog het die prosedure liggaam beperk sommige bedrywighede in dit. Sommige van die belangrikste beperkings word hieronder gelys:

- die liggaam nie enige ander gestoor proses te skep;

- die liggaam moet 'n vals indruk oor die voorwerp nie skep;

- die liggaam nie enige snellers te skep.

2. Stel die veranderlike in die liggaam van die prosedure

Jy kan veranderlikes plaaslike na die prosedure van die liggaam te maak, en dan sal hulle binne 'n prosedure liggaam. 'N Goeie praktyk is om 'n veranderlike te skep aan die begin van die gestoor proses liggaam. Maar jy kan ook veranderlikes oral in die liggaam van die voorwerp.

Soms kan jy weet dat sommige veranderlikes gestel in dieselfde ry, en elke veranderlike geskei deur 'n komma. Let ook daarop dat die veranderlike is voorafgegaan deur @. In die liggaam van die prosedure, kan jy 'n veranderlike wat jy wil stel. Byvoorbeeld, kan 'n veranderlike @ NAME1 aangekondig word teen die einde van die prosedure liggaam. Ten einde 'n waarde aan 'n veranderlike toewys verklaar met behulp van 'n stel van persoonlike data. In teenstelling met die situasie wanneer meer as een veranderlike verklaar in dieselfde ry, net een stel van persoonlike data wat in hierdie situasie.

Gebruikers vra dikwels die vraag: "Hoe om verskeie waardes in 'n enkele verklaring Wel toewys in die liggaam van die prosedure?. Interessante vraag, maar dit is baie makliker as wat jy dink. Die antwoord: met die hulp van sulke pare as «Select Var = waarde". Jy kan hierdie pare, geskei deur kommas gebruik.

3. Skep 'n SQL gestoor proses

In 'n wye verskeidenheid van voorbeelde van mense wys skep van 'n eenvoudige gestoor proses en uit te voer nie. Tog kan die prosedure soos parameters wat die roeping proses sal dit 'n waarde naby aan dit (maar nie altyd) het neem. As hulle pas, begin dan die ooreenstemmende prosesse in die liggaam. Byvoorbeeld, as jy 'n proses wat die stad en streek sal neem uit die oproeper en die data oor hoeveel die skrywers verwys na die ooreenstemmende stad en streek terugkeer skep. Die prosedure sal 'n databasistabel van skrywers bevraagteken, byvoorbeeld, Pubs, vir die uitvoering van hierdie berekening skrywers. Om hierdie databasisse verkry, byvoorbeeld, die Google afgelaai die SQL script met SQL2005 bladsy.

In die vorige voorbeeld, die proses neem twee parameters, wat in Engels voorwaardelik @State en @City sou genoem word. Die tipe data in ooreenstemming met die voorwaardes in die aansoek tipe. Die prosedure liggaam interne veranderlikes @TotalAuthors (al outeurs), en hierdie veranderlike word gebruik om hul nommer te vertoon. Volgende kom 'n artikel seleksie versoek dat al die punte. Ten slotte, is die berekende waarde vertoon in die uitset venster met behulp van die gedrukte verklaring.

Hoe om 'n SQL gestoor proses uit te voer

Daar is twee maniere om die prosedure uit te voer. Die eerste manier is getoon deur 'parameters as 'n komme geskeide lys is gedoen nadat die naam prosedure. Gestel ons het twee waardes (soos in die vorige voorbeeld). Hierdie waardes word ingesamel deur veranderlikes en @State @City prosedure. In hierdie metode, belangrike parameters van die oordrag orde. Hierdie metode staan bekend as die oordrag volgorde van argumente. In die tweede metode, is die parameters reeds direk opgedra, in welke geval die orde is nie belangrik nie. Hierdie tweede metode staan bekend as die oordrag van die naam van argumente.

Die prosedure kan effens afwyk van die tipiese. Almal dieselfde, as in die vorige voorbeeld, maar die parameters word hier net verskuif. Dit is @City parameter is eerste gestoor, en @State gestoor langs die verstek waarde. Die verstek is gewoonlik afsonderlik toegeken. SQL stored procedures is so eenvoudig parameters. In hierdie geval, op voorwaarde dat die opsie "die UT 'vervang die standaard waarde van" CA ". In 'n tweede verpersoonliking gaan net een argument waarde vir @City, en @State opsie standaard "CA". Ervare programmeerders moet daarop let dat al die verstek veranderlikes nader aan die einde van die parameter lys is geleë. Anders, die uitvoering daarvan is nie moontlik, dan moet jy om te werk met die oordrag van die naam van argumente dat hoe langer en meer ingewikkeld.

4. Stored Procedures SQL Server: maniere om terug te keer

Daar is drie groot maniere om data gestoor in die sogenaamde proses stuur. Hulle word hieronder gelys:

- terugkeer waardes gestoor proses;

- Uitgawe parameter gestoor prosedures;

- Kies een van die gestoor prosedures.

4.1 Return waardes van SQL stored procedures

In hierdie proses, die proses stel die waarde van die plaaslike veranderlike en terugkeer nie. Die prosedure kan ook direk 'n konstante waarde terug te keer. In die volgende voorbeeld, het ons 'n proses wat die totale aantal borge terug geskep. As ons dit vergelyk met die vorige proses, kan jy sien dat die waarde van druk word vervang deur die omgekeerde.

Kom ons kyk na hoe om die prosedure uit te voer en die waarde te vertoon, stuur dit terug. Die uitvoer van prosedures wat nodig is om vas te stel en veranderlike druk, wat uit nadat die proses is uitgevoer. Let daarop dat in plaas van die druk van die operateur die Gekose-operateur kan gebruik, byvoorbeeld Select @RetValue, en OutputValue.

4.2 Afvoer Parameter SQL stored procedures

Die reaksie waarde gebruik kan word om 'n enkele veranderlike wat ons gesien het in die vorige voorbeeld terugkeer. Die gebruik van die Uitvoer laat die prosedure wat gevolg moet een of meer veranderlikes te stuur na die roeping party. Uitset parameter word aangedui as tyd dit sleutel woord «uitset» wanneer die skep van prosedure. As die parameter is gespesifiseer as 'n uitset parameter, moet die prosedure voorwerp dit wys 'n waarde. Gestoor prosedures SQL, voorbeelde van wat onder gesien kan word, in so 'n geval terug te keer na die finale inligting.

In hierdie voorbeeld, sal daar twee naweke naam wees @TotalAuthors en @TotalNoContract. Hulle word in die parameter lys. Hierdie veranderlikes is opgedra waardes binne die prosedure liggaam. Wanneer ons die uitset parameters gebruik, kan die oproeper die stel in die proses liggaam waarde sien.

Daarbenewens, in die vorige scenario, twee veranderlikes verklaar word om die waardes wat gestoor prosedures, MS SQL Server as 'n uitset parameter is geïnstalleer. Toe die prosedure uitgevoer word deur die toepassing van die normale waarde «CA» parameter. Die volgende parameters is uitset, en daarom verklaar veranderlikes geslaag in die voorgeskrewe wyse. Neem asseblief kennis dat wanneer 'n veranderlike uitset navraag ook hier vermeld. Na afloop van die prosedure suksesvol voltooi is, is die waarde wat deur die gebruik van die uitset parameters vertoon op die boodskap venster.

4.3 Die keuse van 'n SQL stored procedures

Hierdie tegniek word gebruik om 'n stel in die vorm tafel datawaardes (rekordstel) terug te keer vir 'n beroep 'n gestoor proses. In hierdie voorbeeld, SQL gestoor proses met parameters @AuthID versoek tafel "skrywers" deur die filter van die rekords teruggekeer deur hierdie parameter @AuthId. Kies operateur besluit wat moet teruggestuur word aan die uitroep van 'n gestoor proses. Wanneer 'n gestoor proses AuthId oorgedra terug. So 'n proses is altyd terug net een rekord of glad nie. Maar die gestoor proses geen beperkings op die terugkeer van meer as een inskrywing hê. Dikwels voorbeelde kan gevind word waarin die opbrengs data gekies met behulp van parameters met die berekende veranderlikes word gedoen deur die verskaffing van 'n pluraliteit van totale waardes.

Ter afsluiting

A gestoor proses is 'n redelik ernstige program, teruggekeer of oorgedra word, asook om die nodige veranderlikes te danke aan die kliënt aansoek. Sedert die gestoor proses uitgevoer word op die bediener self, kan data-uitruilprogram in groot volumes tussen die bediener en die kliënt aansoek (vir 'n paar berekeninge) vermy word. Dit maak dit moontlik om die las op die SQL-bediener, wat, natuurlik, is die hand van hul houers te verminder. Een van die subspesie gestoor prosedures T SQL, maar hul studie is nodig om diegene wat betrokke is in die skepping van 'n indrukwekkende databasis. Daar is ook 'n groot, selfs groot hoeveelheid van die nuanses wat nuttig in die studie van gestoor prosedures kan wees, maar dit moet vir diegene wat van plan is om stywe programmering doen, insluitend professioneel.

Similar articles

 

 

 

 

Trending Now

 

 

 

 

Newest

Copyright © 2018 af.delachieve.com. Theme powered by WordPress.