Le stored procedure sono oggetti di database eseguibili composte da più istruzioni SQL . Essi aiutano a semplificare l'interazione tra il database e l' utente finale che non ha abbastanza esperienza per scrivere query SQL complesse . È possibile utilizzare le stored procedure per l'accesso , la convalida dei dati e semplificando l'elaborazione complessa che richiede più istruzioni SQL . Le stored procedure possono accettare parametri di input , valori restituiti e implementare logiche di loop come se , mentre le dichiarazioni e il caso . Cose che ti serviranno
Microsoft SQL Server Query Analyzer
Show More Istruzioni
1
creare una stored procedure utilizzando la sintassi CREATE PROCEDURE procedurename . Inserire le seguenti istruzioni per creare una stored procedure chiamata sporderscopy che copia il contenuto della tabella Orders in tavola OrdersCopy .
CREATE PROCEDURE sporderscopy
AS
SELECT * in OrdersCopy
FROM ordini
la procedura sopra creerà una copia della tabella ordini . È inoltre possibile aggiungere i parametri , ricompilare e aggiungere la crittografia con la procedura di istruzione CREATE . I parametri consentono di accettare i valori della procedura che sono necessarie per il risultato desiderato . I parametri di uscita vengono utilizzati per memorizzare i valori che vengono passati a un altro programma . Parametri opzionali hanno un valore predefinito e non hanno bisogno di un valore di ingresso . L'opzione di ricompilare rende il sistema compila la procedura ogni volta che viene eseguito. L' opzione di crittografia consente all'utente finale di ottenere il risultato finale senza visualizzare il codice.
2 Le stored procedure
può accettare i valori di input e passare di nuovo i valori di uscita al programma chiamante le procedure memorizzate dichiarando i parametri . I parametri di input possono essere facoltativi , se si assegna un valore di default per loro durante la creazione della procedura . I parametri di uscita sono definite specificando la parola chiave OUTPUT .
CREATE PROCEDURE sporderscount
@ total_order soldi USCITA , Stati
@ order_date smalldatetime = NULL , Stati
@ customer_var varchar ( 40 ) = '%'
AS
SELECT @ total_order = SOMMA ( total_order ) per
dagli ordini ENTRA clienti
ON orders.orderID = customers.orderID
WHERE ( ORDER_DATE > = @ date_var ) per
e ( CustomerName come @ customer_var ) per
La procedura di cui sopra ha due parametri di input e restituisce un parametro di output . Il parametro di uscita viene identificato dalla parola chiave OUTPUT .
3
fase di esecuzione di una procedura utilizzando la sintassi procedurename EXEC . Inserire le seguenti istruzioni SQL per eseguire la stored procedure :
DECLARE @ mytotalorder soldi
EXEC spordercount @ mytotalorder = @ uscita total_order , '2010 -03- 21 ' , ' D % ' < br >
Declare crea una variabile di uscita che memorizzerà il valore del parametro di output nella stored procedure . La dichiarazione di esecuzione viene utilizzato per eseguire la stored procedure . Dal momento che entrambi i parametri di ingresso hanno valori di default , non hanno bisogno di essere assegnato un valore durante l'esecuzione della procedura di
4
valori restituiti da stored procedure , aggiungendo la seguente dichiarazione : .
RITORNO @ order_count
la dichiarazione di cui sopra in una stored procedure restituirà un valore e memorizzarlo in una variabile nel programma chiamando la procedura . È possibile utilizzare un parametro di ritorno o il parametro di output da restituire un valore al programma chiamante . Nella dichiarazione di cui sopra , la procedura restituisce il numero di righe della tabella degli ordini .
5
Utilizzare il comando ALTER PROCEDURE procedurename di modificare la stored procedure . La sintassi è simile alla procedura di creazione. Inserire le seguenti dichiarazioni di modificare la procedura spordercount per aggiungere un altro stato variabile . La stored procedure limiterà le righe in base allo stato di residenza anziché il nome .
ALTER PROCEDURE sporderscount
@ order_state varchar ( 30 ) = NULL , Stati
@ total_order soldi USCITA , Stati
@ order_date smalldatetime = NULL
AS
SELECT @ total_order = somma ( total_order ) per
dagli ordini JOIN clienti
< p > ON orders.orderID = customers.orderID
WHERE ( ORDER_DATE > = @ date_var ) per
E ( CustomerState = @ order_state ) economici 6
Elimina la stored procedura utilizzando il comando procedurename DROP PROCEDURE . Non è possibile annullare l'effetto del comando drop . Eliminare la stored procedure spordercount inserendo la seguente dichiarazione :
GOCCIA PROCEDURA sporderscount