Tipi di stored procedure

In Microsoft SQL Server sono disponibili molti tipi di stored procedure. In questo argomento vengono forniti una breve descrizione e un esempio di ogni tipo di stored procedure.

Stored procedure definite dall'utente

Le stored procedure sono 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 2008 possono essere di due tipi, ovvero Transact-SQL o CLR.

Transact-SQL

Una stored procedure Transact-SQL è una raccolta salvata 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.

CLR

Una stored procedure CLR è un riferimento a un metodo Common Language Runtime (CLR) di Microsoft .NET Framework .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. Per ulteriori informazioni, vedere CLR Stored Procedures (informazioni in lingua inglese).

Stored procedure estese

Nota importanteImportante

Questa caratteristica verrà rimossa a partire da una delle prossime versioni di Microsoft SQL Server. Evitare di utilizzare questa caratteristica in un nuovo progetto di sviluppo e prevedere interventi di modifica nelle applicazioni in cui è attualmente implementata. Utilizzare invece le funzionalità di integrazione con CLR (informazioni in lingua inglese).

Le 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 vengono programmate utilizzando l'API Stored procedure estesa di SQL Server.

Nota

L'integrazione con CLR offre un'alternativa più efficiente rispetto alla scrittura di stored procedure estese.

Stored procedure di sistema

Molte attività amministrative di SQL Server vengono eseguite tramite un tipo speciale di procedura nota come stored procedure di sistema. Ad esempio, sys.sp_changedbowner è una 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 2008, è possibile applicare alle stored procedure di sistema le autorizzazioni GRANT, DENY e REVOKE. Per un elenco completo delle stored procedure di sistema, vedere Stored procedure di sistema (Transact-SQL).

SQL Server supporta le stored procedure di sistema che forniscono ai programmi esterni un'interfaccia di SQL Server per varie attività di manutenzione. Tali stored procedure estese utilizzano il prefisso xp_. Per un elenco completo delle stored procedure estese, vedere Stored procedure estese generali (Transact-SQL).