Per creare una Stored Procedure dobbiamo avviare il Management Studio, aprire la cartella Stored Procedure del nostro database e scelgiere la solita opzione Crea stored. A questo punto ci viene messo a disposizione un editor con alcune istruzioni già pronte:
Listato 1. Testo per creare una stored procedure
-- =============================================
-- Author: <Author,,Name>
-- Create date: <Create Date,,>
-- Description: <Description,,>
-- =============================================
CREATE PROCEDURE <Procedure_Name, sysname, ProcedureName>
<@Param1, sysname, @p1> <Datatype_For_Param1, , int> = <Default_Value_For_Param1, , 0>,
<@Param2, sysname, @p2> <Datatype_For_Param2, , int> = <Default_Value_For_Param2, , 0>
AS
BEGIN
SELECT <@Param1, sysname, @p1>, <@Param2, sysname, @p2>
RETURN <@Param1, sysname, @p1>
END
GO
Come si nota la Stored procedure comprende una prima sezione per la dichiarazione di parametri che possono essere di input oppure di output. Una seconda sezione che esegue una o più istruzione SQL ed infine la restituzione del parametro stesso.
La caratteristica più importante delle stored è che sono delle procedure in grado di ricevere e restituire parametri. In questo modo abbiamo la possibilità di riciclare il nostro codice e parametrizzarlo.
Per esempio, se volessimo creare una Stored che ci faccia visualizzare solamente gli orgini con una cifra superiore ad un parametro che vogliamo noi:
Listato 2. Stored Procedure ORDINI_PAR
USE MyDatabase
GO
CREATE PROCEDURE ORDINI_PAR
-- parametro prezzo di tipo money
<strong>@PREZZO money = 0 </strong>
AS
BEGIN
SET NOCOUNT ON;
SELECT * FROM ANA_ORDINI
WHERE ORD_PREZZO >= @PREZZO
END
GO
Se volessimo richiamare questa stored, potremmo farlo, ad esempio, per sapere quanti ordini hanno i prodotti che superano i 100 €. Aprendo un semplice editor di query bisogna dichiarare il parametro ed eseguire la stored.
Listato 3. Esecuzione Stored ORDINI_PAR
USE [MyDatabase]
GO
EXEC [dbo].[ORDINI_PAR]
@PREZZO = 0
GO
Le Stored Procedure, oltre ad essere utilizzate per restituire delle informazioni dal database, possono essere utilizzate anche per modificare o aggiungere dati al database. Possiamo, per esempio, usare una Stored Procedure per inserire un nuovo record e di questo, prelevare l'ID per renderlo visibile all'applicazione.
Nell'esempio che segue dobbiamo creare una Stored in grado di inserire un nuovo ordine nel database e informarci sull'ID creato.
Listato 4. Stored INSERISCI_ORDINE
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE PROCEDURE INSERISCI_ORDINE
@ORDINE_ID INT OUTPUT,
@ID_UTENTE INT,
@CODICE VARCHAR(50),
@PRODOTTO VARCHAR(100),
@QUANTITA INT,
@PREZZO MONEY
AS
BEGIN
SET NOCOUNT ON;
INSERT INTO ORDINI
(ORDINI.ORD_ID_ANA,
ORDINI.ORD_CODICE,
ORDINI.ORD_PRODOTTO,
ORDINI.ORD_QUANTITA,
ORDINI.ORD_PREZZO)
VALUES (@ID_UTENTE,
@CODICE, @PRODOTTO, @QUANTITA, @PREZZO);
SET @ORDINE_ID = (SELECT @@IDENTITY);
END
GO
Il tipo di dati geography su SQL Server 2008Memorizzare latitudine e longitudine, calcolare distanze e ottenere... |
MySQL: conversione dei tipi di datoCome eseguire il casting (la conversione dei tipi di dato) in MySQL:... |
Hierarchyid e i dati gerarchici con SQL Server 2008Il tipo hierarchyid per la gestione di strutture dati gerarchiche |
Migliorare le prestazioni di MySQLQuali sono le configurazioni post-installazione di MySQL che possono... |
Filestream in SQL Server 2008Manipolare file binari e documenti con l'efficienza del file system |
Guida SQL Server 2005L'RDBMS di Microsoft è uno dei più utilizzati, soprattutto in ambito... |
Guida OracleScoprire ed approfondire un dei più importanti RDBMS sulla scena... |
Guida MySQLUna guida per usare uno dei più importanti sistemi di gestione di... |
Ogni settimana, in due distinte newsletter: notizie a approfondimenti su MySQL, SQLserver e Oracle.
Iscriviti alla newsletter
|
|
Corso Webmaster con PHP01 Marzo 2010 a Milano |
|
|
Corso Webmaster con ASP.Net22 Marzo 2010 a Roma |
|
|
Corso Webmaster con PHP29 Marzo 2010 a Roma |