Gemte procedurer for en SQL Server Express

Microsoft SQL Server Express er en gratis version af Microsofts SQL Server, som er en ressource til administration og oprettelse af databaser og udførelse af dataanalyse. Meget af funktionaliteten i den ikke-gratis version af SQL Server findes i SQL Server Express, inklusive det visuelle styringsværktøj SQL Management Studio og muligheden for at gøre brug af lagrede procedurer.

Sprog for lagrede procedurer

Lagrede procedurer er SQL-forespørgsler, som SQL Server-brugere kan gemme og derefter tilbagekalde til senere udførelse. Nøglefunktioner ved lagrede procedurer inkluderer deres programmerbarhed og deres evne til at acceptere parametre. Gemte procedurer er skrevet på programmeringssproget i Transact SQL, som bruges til at udføre databaseforespørgsler. Lagrede procedurer har form af andre SQL-udsagn skrevet i transact SQL, men accepterer også parametre.

Oprettelse af lagrede procedurer

I Microsoft SQL Server kan en ny gemt procedure oprettes ved at højreklikke på en mappe med eksisterende lagrede procedurer, kaldet \ "Lagrede procedurer, \" i Objekt Explorer-ruden. SQL Server opretter denne mappe automatisk, når en ny database oprettes, og placerer den her i mappehierarkiet: [dbaseName]> [\ "Programmability \"]> [\ "Stored Procedures \"].

Nye lagrede procedurer for dbaseName gemmes uden for undermappen \ "System Stored Procedures", som er under [\ "Stored Procedures \"]. Ved oprettelse af en ny database udfylder SQL Server mappen Systemlagrede procedurer med scripts for at vedligeholde databasen. SQL Server-brugere behøver ikke at bruge disse systemlagrede procedurer til at oprette deres egne.

Når den gemte procedure oprindeligt er oprettet, åbnes en ny forespørgselsfane. Fanen indeholder en skabelon eller prøveforespørgsel, som brugeren derefter ændrer for at passe til sit formål.

Prøveprocedure

Et eksempel på en lagret procedure er følgende:

BRUG [test] GO CREATE PROCEDURE [dbo]. [Mysp_selectstuff] AS - SET NOCOUNT ON tilføjet for at forhindre ekstra resultatsæt fra - forstyrrer SELECT-sætninger. - INDSTILL NOCOUNT ON GO

- Indsæt udsagn til proceduren her VÆLG * fra dbo.Movies GO GO EXEC [dbo]. [Mysp_selectstuff] GO GO DROP PROCEDURE [dbo]. [Mysp_selectstuff] GO GO

Struktur af en lagret procedure

Det er almindelig praksis at kapitalisere SQL-sætningerne for at skelne dem fra de databaskomponenter, som udsagnene fungerer på. Kommentarer begynder med \ "- \" strengen. Disse har ingen effekt på forespørgslen. I dette eksempel kaldes den forespurgte database \ "test", og tabellen inde i databasen er Film. Præfikset \ "dbo \" føjes til film for at adskille det fra andre tabeller, der muligvis har samme navn. Den fulde forespørgsel vælger blot alle felter for alle poster i tabellen Film.

Kørsel af lagrede procedurer

GO-udsagnene er som RUN-udsagnene i BASIC-programmer: de beder SQL-tolken om at udføre de udsagn, der kommer foran dem. EXEC-sætningen udfører forespørgslen, og DROP PROCEDURE frigiver forespørgslen, efter den er kørt, hvilket er nødvendigt, før forespørgslen køres igen. Den indtastede forespørgsel udføres faktisk af SQL Server, når der trykkes på F5 eller knappen Udfør værktøjslinje.