Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Si applica a:SQL Server
database SQL di Azure
Istanza gestita di SQL di Azure
Azure Synapse Analytics
Sistema di Piattaforma Analitica (PDW)
Database SQL in Microsoft Fabric
Questo articolo descrive come creare una stored procedure SQL Server usando SQL Server Management Studio e usando l'istruzione Transact-SQLCREATE PROCEDURE.
Permissions
Richiede l'autorizzazione CREATE PROCEDURE nel database e l'autorizzazione ALTER per lo schema in cui viene creata la procedura.
Creare una stored procedure
È possibile usare SQL Server Management Studio (SSMS) o Transact-SQL in una finestra di query di SSMS per eseguire una stored procedure. Installare la versione più recente di SQL Server Management Studio (SSMS).
Note
La stored procedure di esempio illustrata in questo articolo usa il database di esempio AdventureWorksLT2022 (SQL Server) o AdventureWorksLT (database SQL di Azure). Per informazioni su come ottenere e usare i database di esempio AdventureWorksLT, vedere Database di esempio di AdventureWorks.
Usa SQL Server Management Studio
Per creare una stored procedure in SSMS, procedere come segue:
In Esplora oggetti connettersi a un'istanza di SQL Server o del database SQL di Azure.
Per altre informazioni, consulta le seguenti guide introduttive rapide:
Espandi l'istanza, quindi espandi Database.
Espandere il database desiderato, quindi espandere Programmabilità.
Fare clic con il pulsante destro del mouse su Stored Procedure, quindi selezionare Nuova>Stored Procedure. Si apre una nuova finestra di query con un modello per la stored procedure.
Il modello predefinito della stored procedure ha due parametri. Se la stored procedure contiene un numero di parametri inferiore, superiore o non ha nessun parametro, aggiungere o rimuovere righe di parametri nel modello in base alle esigenze.
Scegliere Imposta valori per parametri modello dal menu Query.
Nella finestra di dialogo Specifica valori per i parametri del modello specificare le informazioni seguenti per i campi Valore:
-
Autore: sostituire
Namecon il proprio nome. - Data di creazione: Inserisci la data odierna.
- Descrizione: descrivere brevemente le operazioni della procedura.
-
Procedure_Name: sostituire
ProcedureNamecon il nuovo nome della stored procedure. -
@Param1: sostituire
@p1con il nome del primo parametro, ad esempio @ColumnName1. -
@Datatype_For_Param1: a seconda dei casi, sostituire
intcon il tipo di dati del primo parametro, ad esempio nvarchar(50). -
Default_Value_For_Param1: a seconda dei casi, sostituire
0con il valore predefinito del primo parametro o con NULL. -
@Param2: sostituire
@p2con il nome del secondo parametro, ad esempio @ColumnName2. -
@Datatype_For_Param2: a seconda dei casi, sostituire
intcon il tipo di dati del secondo parametro, ad esempio nvarchar(50). -
Default_Value_For_Param2: a seconda dei casi, sostituire
0con il valore predefinito del secondo parametro o con NULL.
Lo screenshot seguente mostra la finestra di dialogo completata per la stored procedure di esempio:
-
Autore: sostituire
Seleziona OK.
Nell'Editor di query, sostituisci l'istruzione SELECT con la query della procedura.
Il codice seguente mostra l'istruzione completa CREATE PROCEDURE per la stored procedure di esempio:
-- ======================================================= -- Create Stored Procedure Template for Azure SQL Database -- ======================================================= SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO CREATE PROCEDURE SalesLT.uspGetCustomerCompany ( -- Add the parameters for the stored procedure here @LastName nvarchar(50) = NULL, @FirstName nvarchar(50) = NULL ) AS /* -- ============================================= -- Author: My Name -- Create Date: 01/23/2024 -- Description: Returns the customer's company name. -- ============================================= */ BEGIN -- SET NOCOUNT ON added to prevent extra result sets from -- interfering with SELECT statements. SET NOCOUNT ON -- Insert statements for procedure here SELECT FirstName, LastName, CompanyName FROM SalesLT.Customer WHERE FirstName = @FirstName AND LastName = @LastName; END GOPer controllare la sintassi, scegliere Analizza dal menu Query. Correggere eventuali errori.
Nella barra degli strumenti selezionare Esegui. La procedura memorizzata viene creata come oggetto nel database.
Per visualizzare la nuova stored procedure elencata in Esplora oggetti, fare clic con il pulsante destro del mouse su Stored Procedures e selezionare Aggiorna.
Per eseguire la procedura:
Su Esplora oggetti fare clic con il pulsante destro del mouse sul nome della stored procedure e selezionare Esegui stored procedure.
Nella finestra Esegui procedura immettere i valori per tutti i parametri, quindi selezionare OK. Per istruzioni dettagliate, vedi Eseguire una procedura archiviata.
Ad esempio, per eseguire la procedura di esempio
SalesLT.uspGetCustomerCompany, immettere Cannon nel parametro @LastName e Chris nel parametro @FirstName, quindi selezionare OK. La procedura archiviata viene eseguita e restituisceFirstNameChris,LastNameCannon eCompanyNameOutdoor Sporting Goods.
Important
Convalida tutti i dati immessi dall'utente. Non concatenare l'input dell'utente prima di averlo convalidato. Non eseguire mai un comando creato dall'input dell'utente non convalidato.
Usare Transact-SQL
Per creare una procedura nell'Editor di query di SSMS:
In SSMS, connettersi a un'istanza di SQL Server o a Database SQL di Azure.
Nella barra degli strumenti selezionare Nuova query.
Immetti il codice seguente nella finestra di query, sostituendo
<ProcedureName>, i nomi e i tipi di dati di eventuali parametri e l'istruzione SELECT con i valori desiderati.CREATE PROCEDURE <ProcedureName> @<ParameterName1> <data type>, @<ParameterName2> <data type> AS SET NOCOUNT ON; SELECT <your SELECT statement>; GOAd esempio, l'istruzione seguente crea la stessa stored procedure nel database
AdventureWorksLTdell'esempio precedente, con un nome di procedura leggermente diverso.CREATE PROCEDURE SalesLT.uspGetCustomerCompany1 @LastName nvarchar(50), @FirstName nvarchar(50) AS SET NOCOUNT ON; SELECT FirstName, LastName, CompanyName FROM SalesLT.Customer WHERE FirstName = @FirstName AND LastName = @LastName; GONella barra degli strumenti selezionare Esegui per eseguire la query. La procedura memorizzata è stata creata.
Per eseguire la stored procedure, immettere un'istruzione EXECUTE in una nuova finestra di query, specificando i valori per eventuali parametri, quindi selezionare Esegui. Per istruzioni dettagliate, vedi Eseguire una procedura archiviata.