Nozioni fondamentali sulle stored procedure
Le stored procedure in MicrosoftSQL 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.