Store procedure (Parte I)

Cosa sono le Stored Procedures?

Una stored procedure consiste in una richiesta SQL contenuta in un database. Servono per evitare di riscrivere centinaia di volte la stessa query. Pensiamo ad esempio ad un' applicazione che debba eseguire più volte la stessa query: anzichè costruirla ogni volta singolarmente, sarebbe molto più comodo scriverla una volta, salvarla in un database e richiamarla al momento del bisogno. Sarebbe molto più comodo, ovvero, usare una stored procedure.

Una volta salvata nel database, possiamo avviarla usando il comando exec in questo modo:

exec usp_displayallusers

dove "usp_displayallusers" è il nome della stored procedure, ed "exec" dice all' SQL Server di eseguirne il codice contenuto. Supponiamo che la stored procedure in questione contenga:

SELECT * FROM USERLIST

Il risultato saranno tutti i records contenuti nella tabella USERLIST.

Ma le stored procedures possono essere qualcosa di molto più complesso.

Iniziare a lavorare con le stored procedures:

Per iniziare, abbiamo bisogno di:

  1. Un sistema di gestione database
  2. Un database
  3. Un editor testuale (va benissimo il Notepad di Windows, ma meglio Notepad++)

Mentre i primi 2 punti sono essenziali, il terzo è piuttosto per comodità : scrivere le stored procedures in un editor testuale è più comodo che scriverle nelle piccole finestre dei sistemi di gestione databases. Tutto qui.

Ora dobbiamo però pensare a cosa far fare alla stored procedure. Domande basilari da porci:

  • vogliamo andare a leggere dei dati nel database (SELECT), inserire nuovi records (INSERT INTO), o modificarne di esistenti (UPDATE)?
  • su quali tabelle vogliamo operare?
  • con quanta frequenza richiameremo questa stored procedure?

Data risposta a queste semplici domande, potremo procedere alla stesura del codice.

Scrivere la prima stored procedure

In SQL Server, sotto alla visuale completa del database, clickiamo su "Stored Procedures" dal menu Enterprise Manager; a questo punto, click con il tasto destro su una delle stored procedures proposte e selezioniamo "New Stored Procedure...". A questo punto ci si aprirà l' editor contenente già alcune righe di codice:

 

CREATE PROCEDURE [PROCEDURE NAME] AS

Comodo è lasciare spaziatura atta alla stesura di possibili commenti subito prima del codice sopra riportato. Ecco quindi come risulterà  il contenuto dell'editor:

/*
commenti
*/

CREATE PROCEDURE [PROCEDURE NAME]

/*
porremo le variabili
*/

AS

/*
le operazioni SQL da eseguire
*/

Perchè lasciare lo spazio per i commenti? Perchè cos'è anche a distanza di anni sapremo sempre di che stored procedure si tratta, se ha dei difetti, dei punti da tener presente, ed inoltre potremmo metterla a disposizione della comunità , e nei commenti dovremmo indicare che siamo noi gli autori e darne una breve descrizione. Una stored procedure che uso spesso ha questa intestazione:

/*
Name: usp_displayallusers
Description: displays all records and columns in USERLIST table
Author: Tom O’Neill
Modification Log: Change

Description Date Changed By
Created procedure 7/15/2003 Tom O’Neill
*/

Una stored procedure deve sempre iniziare con

CREATE PROCEDURE [PROCEDURE NAME]

dove [PROCEDURE NAME] consiste nel nome da associarvi.

Nel nostro esempio la chiameremo usp_displayallusers e risulterà , quindi:

/*
Name: usp_displayallusers
Description: displays all records and columns in USERLIST table
Author: Tom O’Neill
Modification Log: Change

Description Date Changed By
Created procedure 7/15/2003 Tom O’Neill
*/

CREATE PROCEDURE usp_displayallusers

 

Parliamo ora delle variabili.

Vai alla seconda parte dell'articolo



Ti potrebbe interessare anche

commenta la notizia

C'è 1 commento
Lorenzo
Hai qualche domanda da fare?