Tutorial på lagrade procedurer i SQL Servers

Lagrade procedurer är körbara databasobjekt består av flera SQL-satser . De hjälper till att förenkla interaktionen mellan databasen och slutanvändare som inte har tillräckligt med kompetens för att skriva komplexa SQL-frågor . Du kan använda lagrade procedurer för att erbjuda tillgång , dataverifiering och förenkla komplex bearbetning som kräver flera SQL-satser . Lagrade procedurer kan acceptera input parametrar , returvärden och genomföra looping logik som om , medan och fall uttalanden . Saker du behöver
Microsoft SQL Server Query Analyzer
Visa fler instruktioner
1

Skapa en lagrad procedur genom att använda CREATE syntax FÖRFARANDE procedurename . Ange följande uttalanden för att skapa en lagrad procedur som kallas sporderscopy som kopierar innehållet i tabellen Order i OrdersCopy tabellen .

SKAPA FÖRFARANDE sporderscopy

AS

SELECT * i OrdersCopy

FROM Orders

ovanstående procedur kommer att skapa en kopia av tabellen Order . Du kan också lägga till parametrar , kompilera och lägga kryptering med skapa förfarande uttalande . Parametrarna hjälper dig att acceptera värden i det förfarande som krävs för det önskade resultatet . De utgående parametrar används för att lagra värden som skickas tillbaka till ett annat program . Valfria parametrar har ett standardvärde och inte behöver ett ingångsvärde . Den kompilera alternativet gör systemet kompilera förfarandet varje gång den körs . Den kryptering gör att slutanvändaren att få slutresultatet utan att visa koden .
2

Lagrade procedurer kan acceptera ingångsvärden och skicka tillbaka utsignalvärden till programmet anropa lagrade procedurer genom att förklara de parametrar . De ingående parametrarna kan vara frivilligt, om du tilldelar ett standardvärde till dem när du skapar proceduren . De utgående parametrar definieras genom att ange sökord OUTPUT .

SKAPA FÖRFARANDE sporderscount

@ total_order pengar OUTPUT ,

@ ORDER_DATE smalldatetime = NULL ,

@ customer_var varchar ( 40 ) = ’ % ’

AS

SELECT @ total_order = SUMMA ( total_order ) katalog

FRÅN order GÅ kunder

PÅ orders.orderID = customers.orderID

WHERE ( ORDER_DATE > = @ date_var ) katalog

oCH ( CustomerName som @ customer_var ) katalog

ovanstående procedur har två inparametrar och returnerar en utgångsparameter . Utgången parameter identifieras med OUTPUT nyckelordet .
3

Execute eller köra en procedur genom att använda EXEC procedurename syntax . Ange följande SQL-satser för att köra den lagrade proceduren :

FÖRKLARA @ mytotalorder pengar

EXEC spordercount @ mytotalorder = @ total_order utgång , ’2010 -03- 21 ’ , ’ D % ’

förklara uttalandet skapar en utsignal variabel som kommer att lagra värdet för parametern output i den lagrade proceduren . Den exekvera uttalande används för att köra den lagrade proceduren . Eftersom båda de ingående parametrarna har standardvärden , behöver de inte tilldelas ett värde medan du utför proceduren
4

returvärden från lagrade procedurer genom att följande uttalande : . @

RETURN order_count

ovanstående uttalande i en lagrad procedur returnerar ett värde och förvara den i en variabel i programmet anropa proceduren . Du kan antingen använda en återgång parameter eller utgångsparametern att passera tillbaka ett värde till det anropande programmet . I ovanstående uttalande , kommer förfarandet returnera antalet rader i tabellen Order .
5

Använd ALTER kommandot GÅNG procedurename att ändra den lagrade proceduren . Syntaxen liknar skapa förfarande . Ange följande uttalanden för att ändra förfarandet spordercount att lägga till ytterligare en variabel stat . Den lagrade proceduren kommer att begränsa raderna baserat på bosättningslandet i stället för namnet .

ALTER FÖRFARANDE sporderscount

@ order_state varchar ( 30 ) = NULL ,

@ total_order pengar OUTPUT ,

@ ORDER_DATE smalldatetime = null

AS

SELECT @ total_order = sum ( total_order ) katalog

FRÅN order GÅ kunder
ON orders.orderID = customers.orderID

WHERE ( ORDER_DATE > = @ date_var ) katalog

OCH ( CustomerState = @ order_state )
6

Radera den lagrade proceduren genom att använda DROP kommandot fÖRFARANDE procedurename . Du kan inte ångra effekten av nedgången kommandot . Radera spordercount lagrad procedur genom att ange följande uttalande :

DROP FÖRFARANDE sporderscount

Lämna ett svar