ComputereDatabaser

SQL lagrede procedurer: oprette og brug

SQL lagrede procedurer er eksekverbare software-modul, der kan lagres i databasen i form af forskellige objekter. Med andre ord er det et objekt, der indeholder SQL-sætning. Disse lagrede procedurer kan udføres i kundens ansøgning for at få en god præstation. Desuden er sådanne faciliteter ofte kaldes fra andre scripts eller endda fra en hvilken som helst anden sektion.

introduktion

Mange mennesker tror, at de svarer til procedurerne i de forskellige højt niveau programmeringssprog (henholdsvis, med undtagelse af MS SQL). Måske dette er sandt. De har lignende parametre, de kan udstede en lignende værdi. I visse tilfælde, de kommer i kontakt. For eksempel kombineres de med databaser af DDL og DML data samt brugerfunktioner (kode navn - UDF).

Faktisk lagrede SQL-procedurer har en lang række fordele, der adskiller dem blandt sådanne processer. Sikkerhed, variabilitet programmering produktivitet - alt dette tiltrækker brugere, der arbejder med databaser, mere og mere. Toppen af popularitet kom procedurer for årene 2005-2010, da jeg fik programmet fra "Microsoft" under navnet «SQL Server Management Studio». Med dens hjælp, har arbejdet med databaser blevet meget lettere, mere praktisk og mere bekvem. År efter år, denne metode til at overføre information vundet popularitet i programmeringen miljø. I dag, MS SQL Server er absolut sædvanlige program, der for brugerne at "kommunikere" med databaser, stod på lige fod med "Excel".

Når du ringer proceduren, er det straks behandles af serveren uden unødvendige processer og brugerindgreb. Du kan derefter udføre enhver handling med informationen: sletning, udførelse, forandring. Over alt dette er i DDL-operatør, der egenhændigt udføre komplekse handlinger på disse objekter. Og det hele sker meget hurtigt, og serveren faktisk ikke indlæst. Denne hastighed og produktivitet kan du hurtigt overføre store mængder af information fra brugeren til serveren og omvendt.

For at implementere dette arbejde med de oplysninger, der er flere programmeringssprog teknologier. Disse omfatter for eksempel PL / SQL fra database management system Oracle, psql i InterBase og Firebird systemer, såvel som den klassiske "maykrosoftovskih» Transact-SQL. Alle af dem er designet til at skabe og køre lagrede procedurer, så du kan bruge deres egne algoritmer på en stor database handlere. Det er nødvendigt, og for at sikre, at de, der udfører behandling af sådanne oplysninger, kan beskytte alle objekter fra uautoriserede tredjeparter og derfor oprettelse, ændring eller sletning af visse data.

produktivitet

Disse databaseobjekter kan programmeres på forskellige måder. Dette giver brugerne mulighed for at vælge den type proces, der ville være mest hensigtsmæssigt, hvilket sparer tid og energi. Desuden er selve proceduren behandlet, således at man undgår store tidsforbrug på kommunikation mellem serveren og brugeren. Modulet kan omprogrammeres og ændres i den rigtige retning i absolut helst. Især værd at bemærke den hastighed, hvormed lanceringen af SQL lagrede procedure sker: processen er hurtigere anden ligner det, hvilket gør det til en bekvem og alsidig.

sikkerhed

Denne type informationsbehandling afviger fra lignende processer i, at det giver øget sikkerhed. Dette sikres ved, at andre brugere får adgang procedurer kan elimineres helt. Dette vil gøre det muligt for administratoren at udføre operationer med dem selvstændigt, uden frygt for aflytning eller uautoriseret adgang til databasen.

dataoverførsel

Kommunikation mellem en lagret SQL-procedure og klientprogrammet er at bruge parametrene og returnere værdier. Sidstnævnte er ikke nødvendigt at overføre data til en lagret procedure, men de oplysninger (hovedsagelig på brugerens anmodning), og behandlet til SQL. Når lagrede procedure har afsluttet sit arbejde, sender datapakkerne tilbage (men igen, hvis det ønskes) til at kalde program ved hjælp af en række forskellige metoder, hvormed der kan gennemføres som et opkald til en lagret SQL-procedure og retur, for eksempel:

- datatransmission via Udlæsningsparameteren typen;

- dataoverførsel via afkastet erklæring;

- Datatransmission via operatørforvalg.

Og nu se på, hvordan denne proces ser ens indeni.

1. Opret EXEC-lagret i SQL-procedure

Du kan oprette en procedure i MS SQL (Managment Studio). Efter at proceduren er oprettet, vises den på en programmerbar database knudepunkt, hvor proceduren udføres af operatøren af skabelsen. For at udføre SQL stored procedures hjælp EXEC-en proces, der indeholder navnet på objektet.

Ved oprettelse navnet kommer første procedure, og derefter foretaget en eller flere parametre, der er tildelt til ham. Parametre kan være frivillig. Efter parameteren (e), det vil sige selve proceduren, der skal skrives, er det nødvendigt at foretage nogle nødvendige operationer.

Det faktum, at kroppen kan have lokale variabler, der ligger i det, og disse variabler er lokale og i forhold til procedurerne. Med andre ord kan de kun komme i betragtning inden for de kropsbehandlinger Microsoft SQL Server. Lagrede procedurer i dette tilfælde betragtes som lokal.

Således, for at skabe en proces, vi har brug for en procedure navn og mindst en parameter som en procedure krop. Bemærk, at en glimrende mulighed i dette tilfælde er at skabe og gennemførelse af procedurer med et skema navn i klassificeringen.

Proceduren krop kan have nogen form for operatører SQL, for eksempel, såsom at lave en tabel, indsætte en eller flere rækker i tabellen, oprettelse af database type og karakter, og så videre. Ikke desto mindre er den procedure krop begrænser nogle operationer i det. Nogle af de vigtigste begrænsninger er angivet nedenfor:

- kroppen skaber ikke nogen anden lagret procedure;

- kroppen skal ikke skabe et forkert indtryk om objektet;

- kroppen skaber ikke nogen udløser.

2. Indstil den variable i kroppen af proceduren

Du kan lave variabler lokalt til proceduren i kroppen, og så vil de være i en procedure krop. En god praksis er at oprette en variabel i begyndelsen af den lagrede procedure krop. Men du kan også indstille variabler overalt i kroppen af objektet.

Nogle gange kan du opleve, at nogle variabler er sat i samme række, og hver variabel adskilt af et komma. Bemærk også, at variablen er præfikset @. I selve proceduren, kan du sætte en variabel, som du vil. For eksempel kan en variabel @ NAME1 annonceres i slutningen af proceduren legeme. For at tildele en værdi til en variabel erklæret ved hjælp af en samling af personoplysninger. I modsætning til den situation, hvor mere end én variabel erklæret i samme række, kun et sæt af personoplysninger anvendes i denne situation.

Brugere spørger ofte spørgsmålet: "Sådan tildeles flere værdier i en enkelt sætning i selve proceduren 'Nå?. Interessant spørgsmål, men det er meget nemmere end du tror. Svaret: ved hjælp af sådanne par som «Vælg Var = værdi". Du kan bruge disse par, adskilt af kommaer.

3. Opret en SQL lagrede procedure

I en lang række eksempler på mennesker viser at skabe en enkel lagret procedure og udføre den. Dog kan proceduren tage sådanne parametre som den kaldende proces, det vil have en værdi tæt på det (men ikke altid). Hvis de matcher, starter derefter de tilsvarende processer i kroppen. For eksempel, hvis du opretter en procedure, der vil tage byen og regionen fra den, der ringer og returnere data om, hvor meget forfatterne henvise til den tilsvarende byen og regionen. Proceduren vil forespørge en database tabel over forfattere, for eksempel, Pubs, til at udføre denne beregning forfattere. For at opnå disse databaser, for eksempel Google downloader SQL-script med SQL2005 side.

I det foregående eksempel, den procedure tager to parametre, som på engelsk ville blive kaldt betinget @State og @City. Datatype svarer til den type angivet i ansøgningen. Proceduren krop har interne variabler @TotalAuthors (alle forfattere), og denne variabel bruges til at vise deres antal. Dernæst kommer en sektion udvalg anmodning om, at alle punkter. Endelig er den beregnede værdi, der vises i output vinduet ved hjælp af print erklæring.

Sådan udføres en SQL lagrede procedure

Der er to måder at udføre proceduren. Den første måde er vist ved at sende parametre som en kommasepareret liste sker efter proceduren navn. Antag at vi har to værdier (som i det foregående eksempel). Disse værdier er indsamlet ved hjælp af variabler og @State @City procedure. Ved denne fremgangsmåde vigtige parametre for transmission rækkefølge. Denne metode kaldes overførselsrækkefølge argumenter. I den anden metode, er parametrene allerede er tildelt direkte, i hvilket tilfælde rækkefølgen er ikke vigtigt. Denne anden fremgangsmåde er kendt som transmission af navngivne argumenter.

Proceduren kan afvige let fra den typiske. Alle de samme, som i det foregående eksempel, men parametrene er flyttet her alene. Det er @City parameter gemmes først, og @State gemt ved siden af standardværdien. Standardindstillingen er normalt tildeles separat. SQL lagrede procedurer er så enkle parametre. I dette tilfælde, forudsat indstillingen "UT 'erstatter standardværdien på" CA ". I en anden udførelsesform passerer kun ét argument værdi for @City, og @State option standard "CA". Erfarne programmører rådes at alle standard variable er placeret tættere på slutningen af parameteren listen. Ellers udførelse ikke er muligt, så er du nødt til at arbejde med overførslen af navngivne argumenter om, at længere og mere kompliceret.

4. lagrede procedurer SQL Server: måder at returnere

Der er tre store måder at sende data lagret i den kaldte procedure. De er angivet nedenfor:

- returværdier lagret procedure;

- Output parameter lagrede procedurer;

- Vælg en af de lagrede procedurer.

4.1 Return værdier af SQL lagrede procedurer

I denne procedure, proceduren indstiller værdien af den lokale variable og returnerer det. Proceduren kan også direkte returnere en konstant værdi. I det følgende eksempel, har vi skabt en procedure, der returnerer det samlede antal sponsorer. Hvis vi sammenligner dette med den tidligere procedure, kan du se, at værdien af print erstattes af det modsatte.

Lad os nu se på, hvordan man kan udføre proceduren og vise værdien, returnere den. Udfører forsøgene forpligtet til at oprette og udskrivning af variable, som udføres efter processen. Bemærk, at i stedet for at udskrive operatøren kan bruge Select-operatør, fx Vælg @RetValue, og OutputValue.

4.2 Output Parameter SQL lagrede procedurer

Responset værdi kan anvendes til at returnere en enkelt variabel, som vi har set i det foregående eksempel. Brug af Output tillader proceduren til at sende en eller flere variable til den opkaldende part. Output parameter betegnes som tiden denne nøgle ord «Udgang» når du opretter procedure. Hvis parameter er angivet som et output parameter skal proceduren objekt tildele den en værdi. Lagrede procedurer SQL, hvorpå eksempler kan ses nedenfor, i et sådant tilfælde at vende tilbage til den endelige oplysninger.

I dette eksempel vil der være to weekender navn: @TotalAuthors og @TotalNoContract. De er angivet i parameter listen. Disse variabler tildeles værdier inden proceduren krop. Når vi bruger output parametre kan den, der ringer se værdien indstillet i proceduren krop.

Hertil kommer, at i det foregående scenario, er to variabler erklæret for at se de værdier, der er installeret lagrede procedurer, MS SQL Server som et output parameter. Så proceduren er udført ved at anvende den normale værdi «CA» parameter. Følgende parametre er output, og derfor erklærede variabler overføres på den foreskrevne måde. Bemærk, at når en variabel output nøgleord også angivet her. Efter proceduren er fuldført, er den værdi, returneres ved hjælp af output-parametre, der vises på vinduet meddelelsen.

4.3 Valg af en SQL lagrede procedurer

Denne teknik anvendes til at returnere et sæt i form tabellen dataværdier (RecordSet) til at kalde en lagret procedure. I dette eksempel, SQL lagrede procedure med parametre @AuthID anmoder table "forfattere" ved at filtrere de poster, der returneres af denne parameter @AuthId. Vælg operatør beslutter, hvad der skal returneres til at kalde en lagret procedure. Når en lagret procedure AUTHID transmitteret tilbage. En sådan procedure er altid returnerer kun én post eller slet ingen. Men den lagrede procedure ikke har nogen begrænsninger på tilbagelevering af mere end én post. Ofte eksempler kan findes i hvilket returdata valgt med parametre med de beregnede variable sker ved at tilvejebringe en flerhed af samlede værdier.

Som konklusion

En lagrede procedure er en temmelig alvorlig program, returneres eller overføres, samt skabe de nødvendige variabler på grund af klientprogram. Da den lagrede procedure udføres på selve serveren, kan undgås dataudveksling i store mængder mellem serveren og klienten ansøgning (for nogle beregninger). Dette gør det muligt at reducere belastningen på SQL server, som naturligvis er den hånd af deres holdere. En af de underarter er lagrede procedurer T SQL, men deres undersøgelse er nødvendig for at de involverede i skabelsen af en imponerende database. Der er også en stor, selv enorm mængde nuancer, der kan være nyttige i studiet af lagrede procedurer, men dette behov for dem, der planlægger at gøre stram programmering, herunder professionelt.

Similar articles

 

 

 

 

Trending Now

 

 

 

 

Newest

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