Tutorial su stored procedure in SQL Server

April 24

Tutorial su stored procedure in SQL Server


Le stored procedure sono oggetti di database eseguibili composti 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 fornire 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 di ritorno e implementare logiche di loop come se, mentre e casi dichiarazioni.

istruzione

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 Ordini nella tabella OrdersCopy.

CREATE PROCEDURE sporderscopy

COME

SELECT * in OrdersCopy

DA ordini

La procedura sopra creerà una copia della tabella degli ordini. È inoltre possibile aggiungere i parametri, ricompilare e aggiungere la crittografia con l'istruzione CREATE PROCEDURE. I parametri consentono di accettare i valori nella procedura che sono necessari 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 ricompilazione rende il sistema compila la procedura ogni volta che viene eseguito. L'opzione di crittografia consente all'utente finale per ottenere il risultato finale senza visualizzare il codice.

2 Le stored procedure possono accettare i valori di input e passare di nuovo valori di uscita al programma chiamando le stored procedure dichiarando i parametri. I parametri di input possono essere facoltativi, se si assegna un valore predefinito per loro durante la creazione della procedura. I parametri di uscita sono definite specificando la parola chiave OUTPUT.

CREATE PROCEDURE sporderscount

@total_order money OUTPUT,

@order_date smalldatetime = NULL,

@customer_var varchar (40) = '%'

COME

SELEZIONE @total_order = SUM (total_order)

DA ordini JOIN clienti

ON orders.orderID = customers.orderID

WHERE (ORDER_DATE> = @date_var)

E (come CustomerName @customer_var)

La procedura di cui sopra ha due parametri di input e restituisce un parametro di output. Il parametro di uscita è identificato dalla parola chiave OUTPUT.

3 Esegui o eseguire una procedura utilizzando la sintassi EXEC ProcedureName. Inserire le seguenti istruzioni SQL per eseguire la stored procedure:

DICHIARARE denaro @mytotalorder

EXEC spordercount @mytotalorder = uscita @total_order, '2010-03-21', 'D%'

L'istruzione Declare crea una variabile di uscita che memorizzerà il valore del parametro di uscita nella stored procedure. La dichiarazione esecuzione viene utilizzato per eseguire la stored procedure. Poiché entrambi i parametri di ingresso hanno valori predefiniti, essi non devono essere assegnato un valore durante l'esecuzione della procedura.

4 valori da stored procedure Rientro 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 per ritornare al 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 creare. Inserire le seguenti istruzioni per modificare la procedura spordercount per aggiungere un altro stato variabile. La stored procedure limiterà le righe in base allo stato di residenza piuttosto che il nome.

ALTER PROCEDURE sporderscount

@order_state varchar(30) = NULL,

@total_order denaro USCITA,

@order_date smalldatetime = NULL

COME

SELEZIONE @total_order = somma (total_order)

DA ordini JOIN clienti

ON orders.orderID = customers.orderID

WHERE (ORDER_DATE> = @date_var)

E (CustomerState = @order_state)

6 Eliminare la stored procedure utilizzando il comando DROP PROCEDURE ProcedureName. Non è possibile annullare l'effetto del comando DROP. Eliminare la procedura spordercount memorizzato inserendo la seguente dichiarazione:

DROP PROCEDURE sporderscount