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