Per sfruttare le potenzialità di SQL Server, viene messo a disposizione un linguaggio di programmazione chiamato T-SQL.
Durante lo sviluppo di una applicazione Client le richieste per l'interrogazione di dati possono essere inviate direttamente al database, dal programma, tramite istruzioni di INSERT, SELECT, UPDATE o altro ancora, oppure è possibile creare piccoli programmi o funzioni all'interno del database e poi farle eseguire dal programma esterno. Queste procedure si chiamano Stored Procedure.
Si tratta di moduli o routine che incapsulano codice in modo da poterlo riutilizzare. Una stored procedure può accettare parametri di input, restituire al client risultati tabulari o scalari, richiamare istruzioni DDL (Data Definition Language) e DML (Data Manipulation Language) e restituire parametri di output. Le stored procedure di SQL Server 2005 possono essere di due tipi: Transact-SQL o CLR.
Come per un programma, anche una Stored Procedure è in grado di accettare o ricevere parametri, restituire valori anche calcolati, effettuare scelte. Questo oggetto è utilissimo per diversi motivi tra cui la sicurezza e le performance. Per questi motivi, specialmente nello sviluppo di applicazioni client/server, le Stored Procedure dovrebbero essere preferite alle semplici istruzioni SQL.
Tipologie di Stored Procedure.
All'interno di SQL 2005 possiamo creare diverse tipologie di Stored Procedure, una prima suddivisione va fatta tra: stored utente, stored estese e stored di sistema.
Stored definite dall'utente
Si dividono in Transact-SQLe CLR. Una stored procedure Transact-SQL è un insieme salvato di istruzioni Transact-SQL che può accettare e restituire parametri specificati dall'utente. Ad esempio, una stored procedure può contenere le istruzioni necessarie per inserire una nuova riga in una o più tabelle in base alle informazioni fornite dall'applicazione client oppure può restituire dati del database all'applicazione client. Ad esempio, un'applicazione Web per l'e-commerce può utilizzare una stored procedure per restituire informazioni su prodotti specifici in base ai criteri di ricerca specificati dall'utente in linea.
Una stored procedure CLR è un riferimento a un metodo Common Language Runtime (CLR) di Microsoft .NET Framework che può accettare e restituire parametri specificati dall'utente. Viene implementata come un metodo pubblico statico su una classe in un assembly .NET Framework.
Stored Procedure Estese
Consentono di creare routine esterne personalizzate in un linguaggio di programmazione quale C e sono DLL che un'istanza di Microsoft SQL Server è in grado di caricare e di eseguire in modo dinamico. Vengono eseguite direttamente nello spazio degli indirizzi di un'istanza di SQL Server e sono programmate utilizzando l'API Stored procedure estesa di SQL Server.
Stored Procedure di Sistema
Molte attività amministrative di SQL Server 2005 vengono eseguite tramite un tipo speciale di procedura nota come stored procedure di sistema. Le stored procedure di sistema sono archiviate nel database Resource, includono il prefisso sp_ e vengono visualizzate nello schema sys di tutti i database di sistema e definiti dall'utente. In SQL Server 2005, è possibile applicare alle stored procedure di sistema le autorizzazioni GRANT, DENY e REVOKE.