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
Escreva um comentário