Jag har nyligen sammanställt en lektion om hur du skapar lagrade procedurer. Det är en del av mina lagrade procedurer uppackade kurs. När du skapar lagrade procedurer kan du inkapsla logiken säkert, samtidigt som klientprogrammet är ett enkelt sätt att utföra det.
Jag lägger den här gången tillsammans så att du ser hur hela processen fungerar. Jag tror, att innan vi dyker för djupt in i hur man skapar lagrade procedurer, är det först meningsfullt att se hela bilden.,
Efter att ha tittat på den här videon, skapa lagrade procedurer för att träna. Du får reda på är inte så svårt som alla gör dem att vara och du har en av de färdigheter en junior DBA bör veta.
Du kan läsa mer om den här videon, det är transkript följer:
om du vill veta mer om hur du skapar lagrade procedurer, varför inte ta min kurs lagrade procedurer packas upp? Använd kupongkod BLOGPOST-201 för att få det till en betydande rabatt.,
Varför behöver vi skapa lagrade procedurer??
vad vi ska göra i den här lektionen är att skapa en lagrad procedur, sedan utföra den lagrade proceduren och sedan visa resultaten, så bli inte galen om det verkar som för mycket!
tanken här är bara att visa dig de viktigaste stegen i hur du skapar en lagrad procedur.,
senare går vi igenom alla detaljer om vad den lagrade proceduren gör och de olika aspekterna av den lagrade proceduren, till exempel parametrarna.
den lagrade proceduren vi ska skapa är en för att beräkna tiden för att resa ett avstånd. Så, de steg vi ska ta, vi kommer att acceptera avståndet och hastigheten som parametrar. Och sedan, baserat på det, kommer vi att beräkna tiden som avståndet dividerat med hastighet, och då kommer vi att returnera resultatet. Så, låt oss gå vidare och göra det.,
innan vi börjar och skapar lagrade procedurer vill jag att vi pratar om var lagrade procedurobjekt finns i Management Studio.
du är bekant med var tabeller finns i tabellområdet, men om du märker kommer du inte att se något här som talar om lagrade procedurer. Där lagrade procedurer gömmer sig finns det inom detta område som kallas programmerbarhet.
jag klickar på öppen programmerbarhet, du ser att det finns andra mappar här och en kallas lagrad procedur., Och sedan, under den lagrade Procedurmappen kommer att vara alla lagrade procedurer som har skapats.
vad jag ska göra nu är att öppna ett nytt frågefönster så att vi kan skapa vår första lagrade procedur. Jag har skapat ett frågefönster som pekar på AdventureWorks-databasen, och vid denna tidpunkt kommer jag att ta in kommandot för att skapa en lagrad procedur. För att göra det, det är att skapa förfarande och sedan som och sedan börja och sedan sluta.,
det här är huvudbenen eller skelettet i den lagrade proceduren, jag har vad proceduren är, dess namn och sedan start-och slutsignalen, början och slutförandet av proceduren, och alla kommandon som hör till denna lagrade procedur kommer att ligga inom början och slutet.
innan jag kommer mycket längre måste jag lägga till parametrar, och parametrarna går mellan CREATE-proceduren och AS. Här ska jag sätta in mina parametrar, och som vi pratade om tidigare har vi avstånd och hastighet.,
jag tar in parametern för avstånd som en flottör, det kommer att ha ett decimalvärde och hastighet. Observera att parametrar har @ sign framför den. Detta är den karaktär du får när du träffar Shift och 2, och nu är jag redo att sätta i koden.
den första delen jag ska lägga in är delen med NOCOUNT. NOCOUNT läggs i huvudsak in så att SQL inte returnerar extra resultat som säger hur många rader som returneras i det sista valet som kördes.,
och nu kommer jag att lägga in uttalandet för hastigheten, så ett par saker bara för att visa här riktigt snabbt är att jag använder lite logik.
Jag ska testa att om hastigheten inte är lika med noll, låt oss välja uttrycket, @distance / @velocity, så, igen, det här skulle vara som 120 miles dividerat med 60 miles per timme för att ge oss de två timmar som det tog.
detta kommer att returnera resultatet. Om min hastighet är lika med noll, vilket du vet från matte kan du inte dela något med noll, så vi kommer bara att returnera en nolla.
detta är min lagrade procedur., Den lagrade proceduren har ett namn. Den har parametrar. Den har NOCOUNT. Det här är standard, och här är koden som kör och kör. Vi kommer att returnera avståndet dividerat med hastighet, så i princip den tid det tar att resa ett avstånd baserat på hur snabbt vi går. Ett mycket enkelt exempel, men förhoppningsvis visar det dig hur en lagrad procedur är byggd.
så, låt mig köra detta för att skapa vår lagrade procedur. ou kan se att det var framgångsrikt. Jag ska komma över till mitt databasfönster, och jag ska uppdatera det och komma tillbaka till Programmerbarheten, lagrade procedurer.,
och nu kan du se att det finns CalculateTime. Det har parametrar nu, och det returnerar ett heltal. Så, databasen räknade ut vad vårt förfarande tar, och hur det kommer att kryssa.
låt oss köra den lagrade proceduren. Jag har redan satt upp ett exempel. Hur vi kan köra vår lagrade procedur är att skapa ett nytt frågefönster, och vi kan använda exec-kommandot. Exec är kort för exekvera, och jag kan skriva in exec eller exekvera.
och nu kör jag den lagrade proceduren, och här säger jag, ”vi går ett avstånd på 120, och vi går 40 miles per timme.,”Och när jag kör detta, det bör komma tillbaka med värdet av 3, och som ni kan se, det kommer tillbaka med 3.
om jag skulle ändra vår hastighet till noll, vad skulle hända? Det kommer tillbaka med noll för om du kommer ihåg, hade vi det om-då uttalande som sa att om vår hastighet var noll, kan vi inte dela med noll, så returnera en nolla. Återigen, om mängden hastighet är noll, om hastigheten inte är lika med noll, gör beräkningen, annars välj en noll.
här, i ett nötskal, är hur du kan skapa och köra en lagrad procedur., Vi skapar en lagrad procedur med kommandot Skapa procedur, och sedan kan vi köra den med execute.
igen, hela idén här är inte att lära dig hur du skapar den lagrade proceduren och skicka dig på väg och säga, ”Okej. Du är redo att gå. Ta inte mer av klassen.”
det är bara för att visa dig här är början på hur du skapar en lagrad procedur, låt dig få dina fötter våta, låt dig förstå att det inte finns någon hemlig magi bakom detta., Du kan gå ut just nu i din databas och skapa en mycket enkel lagrad procedur för att göra en beräkning för att lägga till ett par nummer tillsammans och bevisa för dig själv att du kan göra det.
det skulle faktiskt vara en bra övning. Gå ut och bara prova en enkel lagrad procedur för att lägga till två nummer tillsammans bara så att du vet att du kan göra det.