Store procedure (Parte I)

Cosa sono le Stored Procedures?

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

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

exec usp_displayallusers

dove "usp_displayallusers" è il nome dellastored procedure, ed "exec" dice all' SQLServer di eseguirne il codice contenuto. Supponiamo che lastored procedure in questione contenga:

SELECT * FROM USERLIST

Il risultato saranno tutti i records contenuti nella tabellaUSERLIST.

Ma le stored procedures possono essere qualcosa di moltopiù 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 proceduresin un editor testuale è più comodo chescriverle nelle piccole finestre dei sistemi di gestionedatabases. Tutto qui.

Ora dobbiamo però pensare a cosa far fare alla storedprocedure. 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 procederealla stesura del codice.

Scrivere la prima stored procedure

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

 

CREATE PROCEDURE [PROCEDURE NAME] ASComodo è 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_displayallusersDescription: displays all records and columns in USERLIST tableAuthor: Tom O’NeillModification Log: ChangeDescription Date Changed ByCreated procedure 7/15/2003 Tom O’Neill*/Una stored procedure deve sempre iniziare conCREATE PROCEDURE [PROCEDURE NAME]dove [PROCEDURE NAME] consiste nel nome da associarvi.Nel nostro esempio la chiameremo usp_displayallusers e risulterà , quindi:/*Name: usp_displayallusersDescription: displays all records and columns in USERLIST tableAuthor: Tom O’NeillModification Log: ChangeDescription Date Changed ByCreated procedure 7/15/2003 Tom O’Neill*/CREATE PROCEDURE usp_displayallusers

 

Parliamo ora delle variabili.

Vai allaseconda parte dell'articolo