Olá galera, nesta Quick Tips, irei mostra como podemos declarar parâmetros e atribuir valores a estes usando o SQL Server.

 

Neste artigo vamos ver ao invés de testar nossas querys, escrevendo toda hora e em todo lugar o valor dos parâmetros que queremos colocar, vamos ver como declarar estes parâmetros veja como é simples :

 

Declarando o Parâmetro:

Sintaxe : DECLARE [PARAMETRO] TYPE

Ex :    DECLARE @IDADE INTEGER;

         DECLARE @NOME VARCHAR(100);

         DECLARE @DATANASCIMENTO DATE;

 

Definindo valor para o parâmetro:

Sintaxe : SET [PARAMETRO] = [VALOR]

Ex:     SET @IDADE = 23;

         SET @NOME = WESLEY YAMAZACK;

         SET @DATANASCIMENTO = ‘1987-05-10’;

        

Veja como funciona na prática:

 

 

DECLARE @DTFINAL DATE 

SET @DTFINAL = '2011-04-30'

    

SELECT VW.CodCliente, SUM(VW.QtdeDependentes) QtdeDependentes, SUM(VW.QtdeDepMaior13)QtdeDepMaior13 FROM (

 

   SELECT CD.CodCliente, Count(CD.CodCliente) QtdeDepMaior13,0 QtdeDependentes

     FROM ClientesDepNET CD, ClientesNET c

    WHERE C.CodCliente = CD.CodCliente       

      AND DATEDIFF (  DAY, CD.DataNasc, @DTFINAL ) > 10*365

      GROUP BY CD.CodCliente

     

    UNION ALL 

   

         SELECT CD.CodCliente, 0, Count(CD.CodCliente)

      FROM ClientesDepNET CD, ClientesNET c

     WHERE C.CodCliente = CD.CodCliente     

      GROUP BY CD.CodCliente    

) VW

GROUP BY VW.CodCliente

 HAVING SUM(VW.QtdeDependentes) = SUM(VW.QtdeDepMaior13)

 

Como podemos notar, a utilização do parâmetro, facilita na hora de montarmos ou testarmos nossos scrips, por exemplo veja o que aconteceria se não existisse o parametro

 

 

SELECT 'HOMENS', IDCLIENTE, NOME, IDADE, SEXO

  FROM CLIENTE

 WHERE SEXO = 'M'

   AND DATACADASTRO >= '2011-04-19'

 

UNION ALL

 

SELECT 'MULHERES', IDCLIENTE, NOME, IDADE, SEXO

  FROM CLIENTE

 WHERE SEXO = 'F'

   AND DATACADASTRO >= '2011-04-19'

 

Agora vamos supor que este valor '2011-04-19', tenha que ser mudado, vamos sair dando replace no script e alterar para o valor desejado, dando mais trabalho do que fazer simplesmente o seguinte :

 

 

DECLARE @DTCADASTRO DATE 

SET @DTCADASTRO = '2011-04-19'

 

SELECT 'HOMENS', IDCLIENTE, NOME, IDADE, SEXO

  FROM CLIENTE

 WHERE SEXO = 'M'

   AND DATACADASTRO >= @DTCADASTRO

 

UNION ALL

 

SELECT 'MULHERES', IDCLIENTE, NOME, IDADE, SEXO

  FROM CLIENTE

 WHERE SEXO = 'F'

   AND DATACADASTRO >= @DTCADASTRO

 

 

Obs : Para declarar vários parâmetros na mesma Query, não precisa colocar “,” ou “;”, veja como seria a declaração de mais de um parâmetro na mesma Query

 

Ex :    DECLARE @IDADE INTEGER

         DECLARE @NOME VARCHAR(100)

         DECLARE @DATANASCIMENTO DATE

         SET @IDADE = 23

         SET @NOME = WESLEY YAMAZACK

         SET @DATANASCIMENTO = ‘1987-05-10’

 

 

Fico por aqui ate à próxima Quick Tips.

 

Um abraço

 

 

Wesley Y

wyamazack@lithic.com.br