NUNCA MAIS PASSE RAIVA POR NÃO CONSEGUIR RESOLVER UM PROBLEMA COM O EXCEL - GARANTIDO!

UNIVERSIDADE DO VBA - Domine o VBA no Excel Criando Sistemas Completos - Passo a Passo - CLIQUE AQUI

Você está em: PrincipalArtigosSQL Server 2005 › Capítulo 10 : 04
Quer receber novidades e e-books gratuitos?
« Lição anterior Curso Completo de SQL Server 2005 - Júlio Battisti Δ Página principal Curso Completo de SQL Server 2005 - Júlio Battisti ¤ Capítulos Curso Completo de SQL Server 2005 - Júlio Battisti Próxima lição »
SQL Server 2005 - CURSO COMPLETO
Autor: Júlio Battisti
Lição 159 - Capítulo 10 - Criando Stored Procedures com Parâmetros de Entrada

A utilização de parâmetros de entrada permite a criação de Stored Procedures mais flexíveis. Vamos considerar o Stored Procedure usp_PedidosDoBrasil, criado no exemplo anterior. Da maneira como foi criado, sem parâmetros de entrada, o critério de pesquisa será sempre o mesmo: PaísDeDestino = ‘Brasil’.

Podemos criar um Stored Procedure mais genérico, o qual aceita o nome do País de Destino como parâmetro de entrada e retorna somente os pedidos para o país passado como parâmetro de entrada.

Para criar um Stored Procedure com um ou mais parâmetros de entrada, utilizamos a seguinte sintaxe:

CREATE PROCEDURE nome_StorProc

@nome_parâmetro  tipo_parâmetro

AS

comando 1

comando 2

...

comando n

Caso tenhamos mais do que um parâmetro de entrada, devemos separá-los por vírgula, conforme indicado a seguir:

CREATE PROCEDURE

@nome_parâmetro1  tipo_parâmetro1,

@nome_parâmetro2  tipo_parâmetro2,

...

@nome_parâmetron  tipo_parâmetron

AS

comando 1

comando 2

...

comando n

Para utilizar o parâmetro nos comandos do Stored Procedure, basta utilizar @nome_do_parâmetro.

Vamos a alguns exemplos práticos, os quais facilitarão o entendimento desta sintaxe.

Exemplo 1: Criar um Stored Procedure chamado usp_Pedidos_PaisParametro. Este store procedure será criado no Banco de Dados NwindAccess, da instância SERVIDOR\SQL2005. O Stored Procedure deve aceitar um parâmetro de entrada chamado Pais, o qual é do tipo nvarchar(25), e usará o valor passado neste parâmetro como critério de pesquisa, para retornar apenas os pedidos para o país passado como parâmetro de entrada.

Para criar o Stored Procedure usp_Pedidos_PaisParametro, siga os passos indicados a seguir:

1. Abra o SQL Server Management Studio e navegue até o banco de dados NwindAccess, da instância SERVIDOR\SQL2005.

2. Clique com o botão direito do mouse no banco de dados NwindAccess e, no menu de opções que é exibido, clique em New Query.

3. Será aberta a janela de execução de comandos T-SQL, sendo o banco de dados NwindAccess, o banco de dados atual. Execute o seguinte comando:

4. Digite o seguinte comando:

USE NwindAccess
GO
CREATE PROCEDURE usp_Pedidos_PaisParametro
@Pais nvarchar(25)
AS
SELECT * FROM Pedidos
WHERE PaísDeDestino = @Pais

4. Para executar o Stored Procedure usp_Pedidos_PaisParametro, passando Campinas como parâmetro, utilizamos o seguinte comando:

Execute usp_Pedidos_PaisParametro “EUA”

Na Figura 10.3, temos os resultados da execução do Stored Procedure, com EUA sendo passado como parâmetro de entrada.

Curso Completo de SQL Server 2005 - Júlio Battisti
Figura 10.3 Execução de um Stored Procedure com valor do parâmetro  de entrada = EUA.

5. Para executar o Stored Procedure usp_Pedidos_PaisParametro, passando França como parâmetro, utilizamos o seguinte comando:

Execute usp_Pedidos_PaisParametro “França”

Na Figura 10.4, temos os resultados da execução do Stored Procedure, com França sendo passado como parâmetro de entrada.

Curso Completo de SQL Server 2005 - Júlio Battisti
Figura 10.4 Execução de um Stored Procedure com valor do parâmetro de entrada = França.

Observe que agora temos um Stored Procedure bem mais flexível, onde podemos informar o critério de pesquisa para o campo PaísDeDestino, simplesmente passando um valor para o parâmetro de entrada..

6. Mantenha a janela de execução de comandos T-SQL aberta, pois vamos continuar a utilizá-la, no próximo exemplo.

Exemplo prático 02: Criar um Stored Procedure chamado usp_Ped_Cid_País. Este será criado no Banco de Dados NwindAccess, da instância SERVIDOR\QL2005. O Stored Procedure deve aceitar dois parâmetros de entrada: um chamado cidade, o qual é do tipo nvarchar(15), e outro chamado país, o qual é do tipo nvarchar(15). O Stored Procedure usará os valores passados nestes parâmetros como critérios de pesquisa, para retornar apenas os pedidos para a cidade e país de destino passados como parâmetros.

Para criar o Stored Procedure usp_Ped_Cid_País, siga os passos indicados a seguir:

1. Abra o SQL Server Management Studio e navegue até o banco de dados NwindAccess, da instância SERVIDOR\SQL2005.

2. Clique com o botão direito do mouse no banco de dados NwindAccess e, no menu de opções que é exibido, clique em New Query.

3. Será aberta a janela de execução de comandos T-SQL, sendo o banco de dados NwindAccess, o banco de dados atual. Execute o seguinte comando:

3. Digite o seguinte comando:

USE NwindAccess
GO
CREATE PROCEDURE usp_Ped_Cid_País
@cidade nvarchar(15),
@país nvarchar(15)
AS
SELECT * FROM Orders
WHERE (CidadeDeDestino = @cidade) and (PaisDeDestino=@país)

4. Para executar o Stored Procedure usp_Ped_Cid_País, passando “Buenos Aires” como valor para o parâmetro cidade, e “Argentina” como valor para o parâmetro país, utilizamos o seguinte comando:

Execute usp_Ped_Cid_País “Buenos Aires”, “Argentina”

5. Para executar o Stored Procedure usp_Ped_Cid_País, passando “Sao Paulo” como valor para o parâmetro cidade, e “Alemanha” como valor para o parâmetro país, utilizamos o seguinte comando:

Execute usp_Ped_Cid_País “Sao Paulo”, “Alemanha”

Evidentemente que esta última execução não irá retornar nenhum registro, apenas a seguinte mensagem será exibida:

(0 row(s) affected)

Se passarmos apenas o parâmetro cidade, ignorando o parâmetro país, conforme indicado no seguinte comando:

Execute usp_Ped_Cid_País “Sao Paulo”

iremos obter a seguinte mensagem de erro:

Msg 201, Level 16, State 4, Procedure usp_Ped_Cid_País, Line 0

Procedure or Function 'usp_Ped_Cid_País' expects parameter '@país', which was not supplied..

Observe que a mensagem informa que é esperado um parâmetro chamado país (@país) e que este parâmetro não foi informado, ao ser feita a execução do stored procedure.

Se passarmos parâmetros a mais, conforme indicado no seguinte comando:

Execute usp_Ped_Cid_País “Sao Paulo”, “Alemanha”, “12/06/2001”

iremos obter a seguinte mensagem de erro:

Msg 8144, Level 16, State 2, Procedure usp_Ped_Cid_País, Line 0

Procedure or function usp_Ped_Cid_País has too many arguments specified.

6. Feche a janela de execução de comandos T-SQL.

« Lição anterior Curso Completo de SQL Server 2005 - Júlio Battisti Δ Página principal Curso Completo de SQL Server 2005 - Júlio Battisti ¤ Capítulos Curso Completo de SQL Server 2005 - Júlio Battisti Próxima lição »

você conhece a universidade do access?

Universidade do Access - Curso Completo de Access
com tudo para você dominar o Access - do Básico ao
Avançado - até a Criação de Sistemas Profissionais
Completos - Passo a Passo - Tela a Tela

Aplica-se ao Access 2019, 2016, 2013 e 2010!

13 Cursos - 574 Vídeo-Aulas - 63:32 horas

Para todos os detalhes, acesse:

https://juliobattisti.com.br/universidade-do-access.asp

Quer receber novidades e e-books gratuitos?

Cursos Online

  • Banco de Dados
  • Carreira
  • Criação/Web
  • Excel/Projetos
  • Formação
  • + Todas as categorias
  • Contato: Telefone: (51) 3717-3796 | E-mail: webmaster@juliobattisti.com.br | Whatsapp: (51) 99627-3434

    Júlio Battisti Livros e Cursos Ltda | CNPJ: 08.916.484/0001-25 | Rua Vereador Ivo Cláudio Weigel, 537 - Universitário, Santa Cruz do Sul/RS, CEP: 96816-208

    Todos os direitos reservados, Júlio Battisti 2001-2019 ®

    [LIVRO]: MACROS E PROGRAMAÇÃO VBA NO EXCEL 2010 - PASSO-A-PASSO

    APRENDA COM JULIO BATTISTI - 1124 PÁGINAS: CLIQUE AQUI