lagrede procedurer eksekverbare databaseobjekter består af flere SQL-sætninger . De hjælper med at forenkle samspillet mellem databasen og slutbruger, der ikke har nok ekspertise til at skrive indviklede SQL-forespørgsler. Du kan bruge lagrede procedurer for at give adgang , datavalidering og forenkle komplekse behandling , der kræver flere SQL-sætninger . Lagrede procedurer kan acceptere input parametre , returnere værdier og implementere looping logikker som hvis tid og tilfælde udsagn. Ting du skal
Microsoft SQL Server Query Analyzer
Vis Flere Instruktioner
1
Opret en lagret procedure ved hjælp af CREATE PROCEDURE procedurename syntaks. Indtast følgende udsagn for at skabe en lagret procedure kaldet sporderscopy der kopierer indholdet af tabellen Ordrer i OrdersCopy bordet.
CREATE PROCEDURE sporderscopy
AS
SELECT * i OrdersCopy < br >
FROM Ordrer
ovennævnte procedure vil oprette en kopi af tabellen Ordrer. Du kan også tilføje parametre rekompilering og tilsæt kryptering med create procedure erklæring. Parametrene hjælper dig til at acceptere værdierne i den procedure, der kræves for det ønskede resultat. Output parametre bruges til at lagre værdier , der er gået tilbage til et andet program. Valgfri parametre har en standardværdi , og har ikke brug for et input værdi. Den rekompilere option gør systemet kompilere procedure hver gang den udføres . Den kryptering gør det muligt for slutbrugeren at få det endelige resultat uden at se koden .
2
Lagrede procedurer kan acceptere input værdier og passere tilbage output værdier til programmet kalde lagrede procedurer ved at erklære de parametre . Inputparametrene kan være frivillig , hvis du tildeler en standardværdi for dem , mens du opretter proceduren. Output parametre er defineret ved at angive nøgleordet OUTPUT .
CREATE PROCEDURE sporderscount
@ total_order penge OUTPUT , salg
@ order_date smalldatetime = NULL , Amerikas
@ customer_var varchar (40 ) = '%'
AS
SELECT @ total_order = SUM ( total_order )
FROM ordrer JOIN kunder
ON orders.orderID = customers.orderID
WHERE ( ORDER_DATE > = @ date_var )
oG ( CustomerName ligesom @ customer_var )
ovenstående procedure har to inputparametre og returnerer én udgang parameter . Parameteren output er identificeret ved OUTPUT søgeord.
3
Udfør eller køre en procedure ved hjælp EXEC procedurename syntaks. Indtast følgende SQL-sætninger for at udføre den lagrede procedure : Hej
DECLARE @ mytotalorder penge
EXEC spordercount @ mytotalorder = @ total_order udgang, '2010 -03- 21 ' , ' D % '< br >
erklære erklæring skaber en output variabel, vil gemme værdien af output parameter i den lagrede procedure. Eksekvere sætning bruges til at køre den lagrede procedure. Da både de inputparametre har standardværdier , de behøver ikke tildeles en værdi under udførelse af proceduren
4
Retur værdier fra lagrede procedurer ved at tilføje følgende erklæring : .
RETURN @ order_count
ovenstående udsagn i en lagret procedure returnerer en værdi, og opbevar det i en variabel i programmet kalder proceduren. Du kan enten bruge en tilbagevenden parameter eller output parameter til at passere tilbage en værdi til det kaldende program . I ovenstående opgørelse , vil proceduren returnerer antallet af rækker i tabellen Ordrer .
5.
Brug ALTER PROCEDURE procedurename kommando til at ændre den lagrede procedure. Syntaksen ligner create procedure . Indtast følgende udsagn til at ændre den procedure spordercount at tilføje endnu en variabel stat. Den lagrede procedure vil begrænse de rækker er baseret på bopælsland snarere end navnet.
ALTER PROCEDURE sporderscount
@ order_state varchar (30 ) = NULL , salg
@ total_order penge OUTPUT , Amerikas
@ order_date smalldatetime = NULL
AS
SELECT @ total_order = sum ( total_order )
FROM ordrer JOIN kunder
< p > ON orders.orderID = customers.orderID
WHERE ( ORDER_DATE > = @ date_var )
OG ( CustomerState = @ order_state )
6
Slet den lagrede procedure ved hjælp af DROP pROCEDURE procedurename kommando. Du kan ikke fortryde effekten af drop kommando. Slet spordercount lagrede procedure ved at indtaste følgende erklæring : Hej
DROP PROCEDURE sporderscount