Criar um procedimento armazenado
Aplica-se a: SQL Server
Banco de Dados SQL do Azure
Instância Gerenciada de SQL do Azure
Azure Synapse Analytics
PDW (Analytics Platform System)
Este artigo descreve como criar um procedimento armazenado do SQL Server usando o SQL Server Management Studio e a instrução Transact-SQL CREATE PROCEDURE.
Permissões
Requer a permissão CREATE PROCEDURE no banco de dados e a permissão ALTER no esquema no qual o procedimento está sendo criado.
Criar um procedimento armazenado
Você pode usar a interface do usuário do SQL Server Management Studio (SSMS) ou o Transact-SQL em uma janela de consulta do SSMS para criar um procedimento armazenado. Use sempre a versão mais recente do SSMS.
Observação
O procedimento armazenado de exemplo neste artigo usa o banco de dados de exemplo AdventureWorksLT2022
(SQL Server) ou AdventureWorksLT
(Banco de Dados SQL do Azure). Para obter instruções sobre como obter e usar os AdventureWorksLT
bancos de dados de exemplo, consulte Bancos de dados de exemplo AdventureWorks.
Usar o SQL Server Management Studio
Para criar um procedimento armazenado no SSMS:
No Pesquisador de Objetos, conecte-se a uma instância do SQL Server ou do Banco de Dados SQL do Azure.
Para obter mais informações, consulte os seguintes guias de início rápido:
Expanda a instância e expanda Bancos de dados.
Expanda o banco de dados desejado e expanda Programabilidade.
Clique com o botão direito em Procedimentos Armazenados e selecione Novo>Procedimento Armazenado. Uma nova janela de consulta é aberta com um modelo para o procedimento armazenado.
O modelo de procedimento armazenado padrão tem dois parâmetros. Se o procedimento armazenado tiver menos ou mais parâmetros ou nenhum, adicione ou remova linhas de parâmetro no modelo conforme apropriado.
No menu Consulta , selecione Especificar Valores para Parâmetros de Modelo.
Na caixa de diálogo Especificar valores para parâmetros de modelo, forneça as seguintes informações para os campos Valor:
- Autor: substitua
Name
por seu nome. - Data de criação: insira a data de hoje.
- Descrição: descreva resumidamente o que o procedimento faz.
- Procedure_Name: substitua
ProcedureName
pelo novo nome do procedimento armazenado. - @Param1: substitua
@p1
pelo nome do primeiro parâmetro, como @ColumnName1. - @Datatype_For_Param1: conforme apropriado, substitua
int
pelo tipo de dados do primeiro parâmetro, como nvarchar(50). - Default_Value_For_Param1: conforme apropriado, substitua
0
pelo valor padrão do primeiro parâmetro ou NULL. - @Param2: substitua
@p2
pelo nome do segundo parâmetro, como @ColumnName2. - @Datatype_For_Param2: conforme apropriado, substitua
int
pelo tipo de dados do segundo parâmetro, como nvarchar(50). - Default_Value_For_Param2: conforme apropriado, substitua
0
pelo valor padrão do segundo parâmetro ou NULL.
A seguinte captura de tela mostra a caixa de diálogo concluída para o exemplo de procedimento armazenado:
- Autor: substitua
Selecione OK.
No Editor de Consultas, substitua a instrução SELECT pela consulta do procedimento.
O código a seguir mostra a instrução CREATE PROCEDURE concluída para o procedimento armazenado de exemplo:
-- ======================================================= -- Create Stored Procedure Template for Azure SQL Database -- ======================================================= SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO -- ============================================= -- Author: My Name -- Create Date: 01/23/2024 -- Description: Returns the customer's company name. -- ============================================= CREATE PROCEDURE SalesLT.uspGetCustomerCompany ( -- Add the parameters for the stored procedure here @LastName nvarchar(50) = NULL, @FirstName nvarchar(50) = NULL ) AS 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 GO
Para testar a sintaxe, no menu Consulta, selecione Analisar. Corrija todos os erros.
Selecione Executar na barra de ferramentas. O procedimento é criado como um objeto no banco de dados.
Para ver o novo procedimento listado no Pesquisador de Objetos, clique com o botão direito em Procedimentos Armazenados e selecione Atualizar.
Para executar o procedimento:
No Pesquisador de Objetos, clique com o botão direito do mouse no nome do procedimento armazenado e selecione Executar procedimento armazenado.
Na janela Executar Procedimento, insira valores para todos os parâmetros e selecione OK. Para obter instruções detalhadas, consulte Executar um procedimento armazenado.
Por exemplo, para executar o procedimento de exemplo
SalesLT.uspGetCustomerCompany
, insira Cannon para o parâmetro @LastName e Chris para o parâmetro @FirstName e selecione OK. O procedimento armazenado é executado e retornaFirstName
Chris,LastName
Cannon eCompanyName
Outdoor Sporting Goods.
Importante
Valide todas as entradas de usuário. Não concatene a entrada do usuário antes de validá-la. Nunca execute um comando construído por uma entrada de usuário inválida.
Usar o Transact-SQL
Para criar um procedimento no Editor de Consultas SSMS:
No SSMS, conecte-se a uma instância do SQL Server ou do Banco de Dados SQL do Azure.
Selecione Nova Consulta na barra de ferramentas.
Insira o código a seguir na janela de consulta, substituindo
<ProcedureName>
, os nomes e tipos de dados de quaisquer parâmetros e a instrução SELECT por seus próprios valores.CREATE PROCEDURE <ProcedureName> @<ParameterName1> <data type>, @<ParameterName2> <data type> AS SET NOCOUNT ON; SELECT <your SELECT statement>; GO
Por exemplo, a instrução a seguir cria o mesmo procedimento armazenado no banco de dados
AdventureWorksLT
que o exemplo anterior, com um nome de procedimento ligeiramente diferente.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; GO
Selecione Executar na barra de ferramentas para executar a consulta. O procedimento armazenado é criado.
Para executar o procedimento armazenado, insira uma instrução EXECUTE em uma nova janela de consulta, fornecendo valores para quaisquer parâmetros, e selecione Executar. Para obter instruções detalhadas, consulte Executar um procedimento armazenado.