Mest relationsdatabaser använder Structured Query Language , eller SQL , skapa databas strukturer , uppdatera data och utföra rapportering och underhållsuppgifter . Databashanterare använda lagrade procedurer som ett sätt att optimera ofta använda grupper av SQL-kommandon . Databasen håller en lagrad procedur i kompilerad form som springer snabbare än SQL skickats från klientprogram . Stored Procedure
databasservern bearbetar alla SQL-satser som skickas av program och användare . När det tar emot SQL , det första kontrollerar koden för korrekthet och optimerar den för bästa prestanda , då det utför de uttalanden och returnerar resultatet till användaren . Om du använder vissa grupper av SQL ofta , är det vettigt att skapa lagrade procedurer för dem , eftersom detta låter servern spara kommandon i en form som redan testas och optimeras . En lagrad procedur är helt enkelt en uppsättning SQL -kommandon du sparar genom att använda CREATE FÖRFARANDE uttalande . Du levererar SQL-kommandon och ett namn och databashanteraren skapar en ny post i listan med lagrade procedurer . För att använda proceduren , helt enkelt ge namn följt av eventuella indataparametrarna .
Ingångsparametrar
När du skapar en lagrad procedur , kan du valfritt ange ett antal parametrar förfarandet kommer att använda. Du definierar parametrarna som variabler som börjar med ett " @ " följt av parameterns datatyp , som karaktär , heltal eller datum . Om förfarandet har mer än en ingång parameter , skilja dig dem med kommatecken . Vissa versioner av SQL , såsom Oracle , kräver att du använder ordet " IN " för att indikera en ingång parameter . Andra, såsom Microsoft SQL Server , ta en indataparameter om du inte använder ordet "output ", i vilket fall proceduren använder parametern för utdata .
Utparametrarna
En lagrad procedur kan ha några parametrar eller någon blandning av indata och parametrar output . Du levererar indataparametrarna när du åberopa förfarandet och förfarandet återgår produktionen parametrar till dig , eller ett program , när proceduren är klar . Om du vill ange en utgång parameter , använder ordet OUT eller OUTPUT efter parameterns datatyp
Använder
Lagrade procedurer har två huvudsakliga fördelar : . De kör snabbare än standard SQL uttalanden och de minskar tristess ofta skrivna kommandon . Till exempel , om du har databastabeller som används för att testa att du ofta rensa ut med TRUNCATE TABLE uttalande , kan du bunta ihop dem i en lagrad procedur . Om du ändrar informationen i vissa databastabeller kan du skapa en lagrad procedur med input parametrar som accepterar de nya uppgifterna . För att mata fram resultaten från en uppsättning SQL-satser till en annan uppsättning , använda en lagrad procedur med utdataparametrar .