Nozioni fondamentali sulle stored procedure

Le stored procedure in Microsoft SQL Server sono simili alle procedure di altri linguaggi di programmazione, in quanto sono in grado di:

  • Accettare parametri di input e restituire più valori sotto forma di parametri di output alla procedura o al batch che esegue la chiamata.

  • Includere istruzioni di programmazione che eseguono le operazioni nel database, tra cui la chiamata di altre procedure.

  • Restituire un valore di stato a una procedura o a un batch che esegue la chiamata per indicare l'esito positivo o negativo (e il motivo dell'esito negativo).

Per eseguire una stored procedure è possibile utilizzare l'istruzione Transact-SQL EXECUTE. Le stored procedure sono diverse dalle funzioni in quanto non restituiscono valori al posto dei nomi corrispondenti e non possono essere utilizzate direttamente in un'espressione.

I vantaggi dell'utilizzo delle stored procedure in SQL Server anziché dei programmi Transact-SQL archiviati a livello locale su computer client sono i seguenti:

  • Le stored procedure sono registrate nel server.

  • Alle stored procedure possono essere associati attributi di protezione, ad esempio autorizzazioni, nonché certificati ed è possibile definirne il concatenamento della proprietà.

    Agli utenti è possibile concedere l'autorizzazione per l'esecuzione di una stored procedure senza dover concedere autorizzazioni dirette per gli oggetti a cui questa fa riferimento.

  • Le stored procedure contribuiscono ad aumentare il livello di protezione dell'applicazione.

    Le stored procedure con parametri contribuiscono a garantire la protezione dell'applicazione da attacchi intrusivi nel codice SQL. Per ulteriori informazioni, vedere Attacco intrusivo nel codice SQL.

  • Le stored procedure consentono la programmazione modulare.

    È possibile creare la procedura una volta e chiamarla tutte le volte desiderate nel programma. Ciò contribuisce a migliorare la manutenzione dell'applicazione e consente alle applicazioni di accedere al database in modo uniforme.

  • Le stored procedure sono codice denominato che consente l'associazione tardiva.

    Ciò garantisce un livello di riferimento indiretto per una più semplice evoluzione del codice.

  • Le stored procedure consentono di ridurre il traffico di rete.

    Un'operazione che richiede centinaia di righe di codice Transact-SQL può essere eseguita tramite una singola istruzione che esegue il codice in un'unica procedura, anziché inviare centinaia di righe di codice in rete.