Parâmetros de Entrada em Stored Procedures no SQL Server

Parâmetros de Entrada em Stored Procedures no SQL Server

Podemos passar valores para um procedimento armazenado usando parâmetros de entrada, de forma similar à que passamos valores para funções em programação.

Sintaxe

CREATE | ALTER PROCEDURE nome_procdimento (@parametro AS tipo_dado)
AS
Declarações SQL;

Exemplos

Vamos criar um procedimento de nome sp_livro_valor que receberá um parâmetro de entrada, que chamaremos de @ID, do tipo smallint. Esse parâmetro será o valor do id do livro passado à cláusula WHERE da consulta:

CREATE PROCEDURE sp_livro_valor
    (@ID SMALLINT)
AS
    SELECT Nome_Livro as Livro, Preco_Livro AS Preço
    FROM tbl_livros
    WHERE ID_Livro = @ID;

Testando:

EXEC sp_livro_valor 104;

Usar Múltiplos parâmetros de entrada

Podemos passar vários parâmetros para uma procedure durante sua execução. Vejamos um exemplo:

CREATE PROCEDURE sp_teste
(
    @par1 AS int,
    @par2 AS varchar(20)
)
AS
    SELECT @par1 AS 'Parâmetro 01', @par2 AS 'Parâmetro 02';

Executar passando os parâmetros

Podemos executar a procedure passando os parâmetros de duas formas:

  • Por posição – passando os valores na ordem em que os parâmetros foram declarados
  • Por nome – indicando o nome do parâmetro que irá receber cada valor; neste caso, a ordem não importa.

Vamos testar:

EXEC sp_teste 22, 'Laranja'; --por posição
EXEC sp_teste @par2 = 'Abacate', @par1 = 25; --por nome

Outro exemplo com múltiplos parâmetros de entrada

Vejamos outro exemplo de procedimento armazenado que recebe mais de um parâmetro de entrada:

ALTER PROCEDURE sp_LivroValor
(@ID SMALLINT, @Preco MONEY)
AS
    SELECT Nome_Livro as Livro, Preco_Livro AS Preço
    FROM tbl_Livros
    WHERE ID_Livro > @ID AND Preco_Livro > @Preco;

Executando:

EXEC sp_LivroValor @ID = 103, @Preco = 45;

Mais um exemplo

Desejo fornecer o ID e a quantidade de um título adquirido, e saber o valor total pago pelos livros.

ALTER PROCEDURE sp_LivroValor
(
    @Quantidade SMALLINT,
    @ID SMALLINT
)
AS
    SELECT Nome_Livro as Livro, Preco_Livro * @Quantidade AS Preço
    FROM tbl_Livros
    WHERE ID_Livro = @ID;

Executando:

EXEC sp_LivroValor @ID = 103, @Quantidade = 10;

Exemplo com inserção de registro

CREATE PROCEDURE sp_insere_editora (
    @nome VARCHAR (50)
)
AS
    INSERT INTO tbl_editoras (Nome_Editora)
    VALUES (@nome);

–Execução e verificação:

EXEC sp_insere_editora @nome = 'Mc Graw Hill';
SELECT * FROM tbl_editoras;

Anterior: Como criar e executar procedimentos armazenados no SQL Server

Próximo: Parâmetros de Saída e declaração RETURN em procedimentos armazenados

 

Sobre Fábio dos Reis (1328 Artigos)
Fábio dos Reis trabalha com tecnologias variadas há mais de 25 anos, tendo atuado nos campos de Eletrônica, Telecomunicações, Programação de Computadores e Redes de Dados. É um entusiasta de Unix, Linux e Open Source em geral, adora Eletrônica e Música, e estuda idiomas, além de ministrar cursos e palestras sobre diversas tecnologias em São Paulo e outras cidades do Brasil.
Contato: Website

Escreva um comentário

Seu e-mail não será divulgado


*