jeg har nylig satt sammen en leksjon om hvordan å opprette lagrede prosedyrer. Det er en del av min Lagrede Prosedyrer Pakket kurs. Når du oppretter lagrede prosedyrer, som du kan kapsle logikk på en sikker måte, samtidig som den gir klienten en enkel måte å utføre den.
jeg har sett denne går gjennom sammen slik at du får se hvordan hele prosessen fungerer. Jeg tror, at før vi dykke for dypt inn i hvordan du kan opprette lagrede prosedyrer, det første fornuftig å se hele bildet.,
Etter å ha sett denne videoen, opprette lagrede prosedyrer for å øve. Du finner ut er ikke så vanskelig som alle gjør dem ut for å være, og du vil ha en av de ferdighetene en junior DBA bør vite.
Du kan lære mer om dette i denne videoen, det er avskrift følger:
Hvis du ønsker å lære mer om hvordan du kan opprette lagrede prosedyrer, hvorfor ikke ta mitt kurs Lagrede Prosedyrer Pakket? Bruk coupon code INNLEGGET-201 for å få det til en betydelig rabatt.,
Hvorfor Trenger vi å Opprette Lagrede Prosedyrer??
Hva vi skal gjøre i denne leksjonen er å opprette en lagret prosedyre, og deretter utføre som er lagret prosedyre, og deretter vise resultater, så ikke frik ut om dette ser ut som for mye!
ideen her er bare for å vise deg de viktigste trinnene på hvordan du oppretter en lagret prosedyre.,
Senere, går vi over alle detaljene i hva som er lagret prosedyre gjør, og de ulike aspektene av lagret prosedyre, som parametere.
Den lagrede prosedyren vi kommer til å lage en til å beregne tid til å reise en avstand. Så, hva vi kommer til å ta, vil vi godta avstand og hastighet som parametre. Og deretter, basert på at vi vil beregne tid som avstand delt på hastighet, og deretter, vil vi returnere resultatet. Så, la oss gå videre og gjøre det.,
Før vi kom i gang og lage lagrede prosedyrer, jeg ønsker å snakke om hvor lagret prosedyre objekter er plassert i Management Studio.
Du er kjent med hvor bordene er plassert i Tabeller-området, men hvis du legger merke til, du kommer ikke til å se noe her som snakker om lagrede prosedyrer. Der lagrede prosedyrer er gjemmer seg i dette området som kalles Programmatisk.
jeg klikker du åpne Programmatisk, vil du se at det er andre mapper her, og en er kalt Lagret Prosedyre., Og deretter, under den Lagrede Prosedyren mappe vil bli lagret prosedyrer som har blitt opprettet.
Hva skal jeg gjøre nå er å åpne en ny spørring vinduet, slik at vi kan skape vår første lagret prosedyre. Jeg har laget en spørring vinduet som peker til AdventureWorks database, og på dette punktet, jeg kommer til å ta i kommando for å opprette en lagret prosedyre. For å gjøre det, det er OPPRETTE PROSEDYREN, og deretter og deretter BEGYNNE og deretter AVSLUTTE.,
Dette er den viktigste bein eller skjelett av lagret prosedyre, jeg har hva prosedyren er, er dens navn, og deretter BEGYNNE og AVSLUTTE signal, start og slutt av prosedyren, og alle kommandoer som hører inn under dette lagret prosedyre vil ligge innenfor den BEGYNNER og slutter.
Før jeg får mye lenger, jeg trenger å legge til parametere og parametere gå mellom OPPRETTE PROSEDYRE og SOM. Her er hva jeg vil gjøre er at jeg kommer til å sette i min parametre, og som vi snakket om før, vi har avstand og hastighet.,
jeg kan bringe i parameteren for avstand som en dupp, det kommer til å ha en desimal verdi og hastighet. Legg merke til at parametrene har @ – tegnet foran. Dette er den karakteren du får når du trykker Shift og 2, og nå er jeg klar til å sette i koden.
Det første stykket jeg kommer til å sette i delen med NOCOUNT. Den NOCOUNT i hovedsak er satt i, slik at SQL ikke går ekstra resultatene å si hvor mange rader er returnert i siste VELG som ble kjørt.,
Og nå, jeg vil sette i uttalelsen for hastigheten, så et par ting bare for å vise her virkelige raskt er jeg ved hjelp av noen logikk.
jeg kommer til å teste det hvis hastigheten er ikke lik null, så la oss VELGE uttrykk, @avstand / @hastighet, så, igjen, dette ville være som de 120 km fordelt med 60 miles per time til å gi oss de to timene det tok.
Dette kommer til å returnere resultatet. Hvis min hastighet er lik null, som du vet fra matematikk kan du ikke dele noe av null, så vi kommer bare til å returnere en null.
Dette er min lagret prosedyre., Den lagrede prosedyren, har et navn. Det har parametre. Det har NOCOUNT. Dette er standard, og her er koden som kjører og kjører. Vi vil være tilbake på avstand delt på hastighet, så i utgangspunktet tiden det tar å reise en avstand basert på hvor fort vi kommer. Et veldig enkelt eksempel, men forhåpentligvis er det som viser deg hvordan en lagret prosedyre er bygget.
Så, la meg kjør denne til å lage vår lagret prosedyre. ou kan se det var vellykket. Jeg kommer til å komme over til min database-vinduet, og jeg kommer til å oppdatere det og komme tilbake i Programmatisk, Lagrede Prosedyrer.,
Og nå, du kan se det er CalculateTime. Det har parametre nå, og den returnerer et heltall. Så, database funnet ut hva våre prosedyren tar, og hvordan vil det tick.
La oss kjøre dette som er lagret prosedyre. Jeg har allerede satt opp et eksempel. Hvordan kan vi kjøre vår lagret prosedyre er å opprette en ny spørring vinduet, og vi kan bruke exec-kommandoen. Exec er kort for å kjøre, og jeg kan skrive i exec eller utføre.
Og nå, jeg kjører lagret prosedyre, og her er jeg å si, «Vi går en avstand på 120, og vi kommer 40 miles per time.,»Og når jeg kjører dette, bør det komme tilbake med en verdi av 3, og som du kan se, det kommer tilbake med 3.
Hvis jeg var å endre våre hastigheten er null, hva ville skje? Det kommer tilbake med null fordi hvis du husker, vi hadde som IF-THEN-setning som sa at hvis våre velocity var null, kan vi ikke kan dividere med null, så returnere en null. Igjen, hvis mengden av hastigheten er null, hvis hastigheten er ikke lik null, gjør regnestykket, ellers VELGER du en null.
Her, i et nøtteskall, er hvordan du kan opprette og kjøre en lagret prosedyre., Vi opprette en lagret prosedyre bruker OPPRETTE PROSEDYRE kommando, og da kan vi kjøre det ved å bruke utføre.
Igjen, hele ideen her er ikke å lære deg hvordan å lage en lagret prosedyre og sende deg på din vei og si, «All right. Du er flink til å gå. Ikke ta noen flere av klasse.»
Det er bare for å vise deg her er begynnelsen trinn på hvordan å lage en lagret prosedyre, la deg få dine føtter våt, lar du forstår at det er ingen hemmelighet magi bak dette., Du kan gå ut akkurat nå inn i databasen og lage en veldig enkel lagret prosedyre for å gjøre en beregning for å legge til et par tall sammen og bevise for deg selv at du kan gjøre det.
faktisk, ville det være en stor oppgave. Gå ut og bare prøve en enkel lagret prosedyre for å legge sammen to tall bare så du vet du kan gjøre det.