Partilhar via


Criar um procedimento armazenado

Este tópico descreve como criar um procedimento armazenado Transact-SQL usando o SQL Server Management Studio e a declaração Transact-SQL CREATE PROCEDURE.

  • Antes de começar: Permissões

  • Para criar um procedimento usando: SQL Server Management Studio, Transact-SQL

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.

Como criar um procedimento armazenado

Você pode usar uma das seguintes opções:

  • SQL Server Management Studio

  • Transact-SQL

Usando o SQL Server Management Studio

Para criar um procedimento no Pesquisador de Objetos

  1. No Pesquisador de Objetos, conecte-se a uma instância do Mecanismo de Banco de Dados e, então, expanda essa instância.

  2. Expanda Bancos de Dados, expanda o banco de dados do AdventureWorks2012 e, em seguida, expanda Programação.

  3. Clique com o botão direito do mouse em Procedimentos Armazenados e clique em Novo Procedimento Armazenado.

  4. No menu Consulta, clique em Especificar Valores para Parâmetros de Modelo.

  5. Na caixa de diálogo Especificar Valores para Parâmetros de Modelo, digite os seguintes valores para os parâmetros mostrados.

    Parâmetro

    Valor

    Autor

    Your name

    Create Date

    Today's date

    Descrição

    Retorna dados de funcionário.

    Procedure_name

    HumanResources.uspGetEmployeesTest

    @Param1

    @LastName

    @Datatype_For_Param1

    nvarchar(50)

    Default_Value_For_Param1

    NULL

    @Param2

    @FirstName

    @Datatype_For_Param2

    nvarchar(50)

    Default_Value_For_Param2

    NULL

  6. Clique em OK.

  7. No Editor de Consultas, substitua a instrução SELECT pela seguinte instrução:

    SELECT FirstName, LastName, Department
    FROM HumanResources.vEmployeeDepartmentHistory
    WHERE FirstName = @FirstName AND LastName = @LastName
        AND EndDate IS NULL;
    
  8. Para testar a sintaxe, no menu Consulta, clique em Analisar. Se uma mensagem de erro for retornada, compare as instruções com as informações acima e corrija conforme necessário.

  9. Para criar o procedimento, no menu Consulta, clique em Executar. O procedimento é criado como um objeto no banco de dados.

  10. Para ver o procedimento listado no Pesquisador de Objetos, clique com o botão direito em Procedimentos Armazenados e selecione Atualizar.

  11. Para executar o procedimento, no Pesquisador de Objetos, clique com o botão direito no nome do procedimento armazenado HumanResources.uspGetEmployeesTest e selecione Executar Procedimento Armazenado.

  12. Na janela Executar Procedimento, digite Margheim como o valor do parâmetro @LastName e digite Diane como o valor do parâmetro @FirstName.

Observação sobre cuidadosCuidado

Valide todas as entradas de usuário. Não concatene a entrada de usuário antes de validá-la. Nunca execute um comando construído por uma entrada de usuário inválida.

[Início]

Usando Transact-SQL

Para criar um procedimento no Editor de Consultas

  1. No Pesquisador de Objetos, conecte-se a uma instância do Mecanismo de Banco de Dados.

  2. No menu Arquivo, clique em Nova Consulta.

  3. Copie e cole o exemplo a seguir na janela de consulta e clique em Executar. Este exemplo cria o mesmo procedimento armazenado descrito acima usando um nome de procedimento diferente.

    USE AdventureWorks2012;
    GO
    CREATE PROCEDURE HumanResources.uspGetEmployeesTest2 
        @LastName nvarchar(50), 
        @FirstName nvarchar(50) 
    AS 
    
        SET NOCOUNT ON;
        SELECT FirstName, LastName, Department
        FROM HumanResources.vEmployeeDepartmentHistory
        WHERE FirstName = @FirstName AND LastName = @LastName
        AND EndDate IS NULL;
    GO
    
  4. Para executar o procedimento, copie e cole o exemplo a seguir em uma nova janela de consulta e clique em Executar. Observe que métodos diferentes de especificar os valores de parâmetros são mostrados.

    EXECUTE HumanResources.uspGetEmployeesTest2 N'Ackerman', N'Pilar';
    -- Or
    EXEC HumanResources.uspGetEmployeesTest2 @LastName = N'Ackerman', @FirstName = N'Pilar';
    GO
    -- Or
    EXECUTE HumanResources.uspGetEmployeesTest2 @FirstName = N'Pilar', @LastName = N'Ackerman';
    GO
    

[Início]

Consulte também

Referência

CREATE PROCEDURE (Transact-SQL)