Windows Vista - Curso Completo - 1476 páginas Windows Server 2003 - Curso Completo SQL Server 2005 - Curso Completo 1500 Tutoriais de Informática Windows Vista - Curso Completo - 1476 páginas Curso Completo de Access Certificações Microsoft
 
Comprar Cursos e Vídeo-Aulas Cursos Online com Certificado Comprar Livros Foruns de Discussao

Você está aqui: Principal » Lista Completa de Tutoriais

Sobre este Tutorial

Autor: Mauricio Pereira Borges Junior
Data: 15-02-2006
Categoria: Banco de Dados
Assunto: SQL SERVER
Visitas: 46072
E-mail: mauricio@ascompras.com
Site: http://www.mauriciojunior.org/
Avaliação: (24 votos)
1 2 3 4 5
Comentários: Ler / Escrever

Stored Procedure Dinâmica

 

Olá pessoal meu nome é Mauricio Junior, mostrarei com este artigo como desenvolver e utilizar SQL Dinâmico com Stored Procedure. Algumas empresas não gostam ou não aceitam muito as mesmas dinâmicas, mas isso é de empresa para empresa. Elas podem ajudar muito ao desenvolvedor agregando vários tipos de SELECTs ou qualquer outro tipo de função de acordo com as condições.

 

Pré-requisito:

 

- Banco de dados SQL Server 2000.

- Um pouco de conhecimento sobre SP (Stored Procedure)

- Enterprise Manager

- Query Analyzer

 

Gosto muito de mostrar na prática os meus artigos, porém tente fazê-lo passo a passo, seguindo-os corretamente para não ter problemas mais a frente. Qualquer dúvida poderá entrar em contato.

 

Na Prática do Banco de Dados

 

Para começar direto na prática, estou usando Enterprise Manager para gerar os SELECTs, criar tabelas e stored procedures no banco de dados. Segue a ilustração para reconhecimento.

 

 

Criei um banco de dados chamado BD_Dinamico. Em seguida criei uma tabela dentro do banco chamada TB001_Usuario. Irei mexer dentro dela inserindo parâmetros e finalmente executando um select dinamicamente.

 

 

A ilustração mostra perfeitamente como ficou a tabela do banco de dados.

 

 

Coloquei o campo ID_USU como uniqueidentifie para inserir um número difícil de ser burlado ou copiado. É gerado automaticamente. O GUID é um conjunto de caracteres criados a cada valor inserido no banco de dados. Clicando no campo ID_USU, o mesmo existe na opção COLUMNS com o nome Is RowGuid. O valor desse campo é Yes para que seja gerado automaticamente.

 

 

Pronto, depois que criei o banco de dados, tabela e campos; irei inserir alguns valores e desenvolver o SELECT dinâmico. O próximo passo é preencher os campos da tabela com valores; em seguida filtrá-los com SQL dinâmico.

 

 

Note que o campo ID_USU foi gerado com alguns caracteres como de criptografia de dados. O mesmo acontece porque foi selecionado o GUID.

 

SQL Dinâmico com Stored Procedure

 

Para começar a desenvolver um SQL dinâmico, cliquei na opção stored procedure e depois cliquei com o botão direito do mouse. logo depois cliquei na opção New Stored Procedure... Como desenvolvedor, não posso esquecer de falar para sempre comentar em suas stored procedures, qualquer pessoa ou você mesmo se lembre do que foi feito.

 

Quando digo a idéia de criar SP dinâmica, isto quer dizer em pesquisar tanto pelo Nome do Usuário, quanto data de nascimento e e-mail. Isso acaba economizando em torno de no mínimo 4 SPs.

 

Segue a primeira tela de criação da mesma:

 

 

Criei a SP, segue o código:

 

 

Figura de ilustração:

 

 

Explicação:

 

Antes de tudo, note que criei uma SP começando com o nome DINAMICASP001_CONSUTAUSUARIO; isso tem uma razão legal. O sistema do banco de dados SQL SERVER internamente faz um for” pegando todas as STORED PROCEDURE que começam com SP portanto, se no sistema possuir muitas SPs, isso pode influenciar um pouco no tempo de execução. Quando são poucas, esse tempo nem dá para perceber. Não esqueça de que esse nome pode ir até 30 caracteres, se passar disso, a IDE reclama.

 

As primeiras linhas que descrevi, foram apenas declarações de parâmetros que terão passadas obrigatoriamente. Não importa que valor passado, só deve ser passado.

 

 

Essa declaração de variável chamada @SQL é porque usarei a mesma para montar o script dinamicamente, ou seja, de acordo com o que usuário ou sistema mandou.

 

 

Nessa instrução acima, monto apenas o select com os campos e tabela mantendo uma condição onde 1=1 e não ter um trabalho de montar uma flag para controlar isso.

 

 

Aqui eu verifico primeiramente as condições de parâmetros passados para depois criar e adicionar a variável @SQL o que desejo buscar. Fiz isso para todos os parâmetros de entrada, porém nenhum é obrigatório, se fosse obrigatório já teria colocar em primeira condição do @SQL economizando algumas linhas de código. Por exemplo, se o nome do usuário for passado, é concatenada automaticamente a condição ao meu script @SQL. Isso acontece com todos os parâmetros que são passados.

 

Para verificar as condições, note que sempre faço uma verificar perguntando se é diferente de NULL. Fiz isso porque nenhum parâmetro é do tipo int, se a mesma for, a condição de verificação seria; perguntando se é diferente de 0 (zero).

 

 

Finalmente depois que tudo é montado, executo a variável declarada no começo da STORED PROCEDURE contendo os valores que foram adicionados. Para imprimir o que foi montado pelas condições, basta comentar esta linha do código e usar a linha seguinte:

 

 

Todas as linhas que estão com “--" (traço traço) são comentários que faço dentro da STORED PROCEDURE.

 

Testando Código Criado

 

Para testar o código criado anteriormente, primeiramente tenho que abrir outra IDE e executá-lo. Segue o passo a passo para abra-la.

 

 

Estou no ENTERPRISE MANAGER, cliquei no menu TOOLS e logo depois em SQL QUERY ANALYZER. O mesmo abrirá uma outra janela como mostra na ilustração abaixo:

 

 

Essa janela aberta é chamada de SQL QUERY ANALYZER e serve para executar alguns códigos SQL tais como: pesquisa, inclusão, alteração, exclusão, criação de tabelas, criação de SP e outros.

 

Para que eu possa testar a SP criada anteriormente, basta copiar o nome da mesma e colar dentro do programa da seguinte forma:

 

 

Uma palavra pequena foi colocada antes mesmo do nome da SP criada, esse comando é para executá-la passando os parâmetros necessários. Note que passei tudo null. Clicando F5 ou no botão EXECUTE QUERY o comando será executado automaticamente mostrando os valores retornados na parte de baixo da janela.

 

Segue a figura de ilustração:

 

 

Passe todos os parâmetros como null porque não quis colocar nenhuma condição para filtrar. Agora que já mostrei como executar uma SP para testar, colocarei uma condição.

 

Apenas colocarei o e-mail do usuário que gostaria, o restante será tudo null.

 

 

 

Note a diferença entre as duas executas, inclusive a SP trouxe valores diferentes neste momento do que no primeiro momento da execução, isto é, agora teve uma condição montada que executou trazendo apenas o e-mail que foi solicitado. Da mesma forma, posso passar os outros parâmetros como data ou nome, se o nome ou data de nascimento estiveram corretos, a SP irá trazer normalmente, se for ao contrário o sistema não irá trazer nada. Com isso acabei economizando pelo menos quatro SPs para serem criadas pelo desenvolvedor ou DBA.

 

É bem simples o desenvolvimento das SPs.

 

Executando o Comando Print

 

Essa parte do artigo mostra, apenas o que foi montado pela SP, veja na tela.

 

Para que isso seja feito corretamente, abri a SP, comentei a linha de EXECUTE e descomentei a linha PRINT.

 

Note como ficou na ilustração:

 

 

Na ultima linha veja que foi descomentada. A mesma voltará apenas o select montado.

 

 

Depois cliquei em APLICAR e depois OK. Executei a mesma coisa anteriormente.

 

Segue o resultado mostrado pela mesma execução:

 

 

Como foi dito antes, veio apenas o SELECT que foi montado.

 

Bom, eu fico por aqui. Tente executar alguns parâmetros para que entenda melhor, executando a cada dia isso fica mais claro. Se no caso tiver alguma dúvida, pode entrar em contato.

 

Meu nome é Mauricio Junior.

 

E-mail: mauricio@aspneti.com

Comunidade: www.aspneti.com ou www.aspneti.com.br

Pessoal: http://spaces.msn.com/mauricioborgesjunior

 

 

LISTA DE TODOS OS TUTORIAIS DISPONÍVEIS

 


CURSOS ONLINE COM CERTIFICADO E SUPORTE
Gerência de Projetos SQL Server 2005 Gerência Financeira Windows Server 2003
MS Project 2007 Photoshop Projeto e Interconexão de Redes LAN Técnico Profissionalizante de Informática
Profissionalizante de Flash      
CURSO EM FORMATO DE VÍDEO-AULA
EXEMPLOS PRÁTICOS PASSO A PASSO COM SOM E IMAGEM
Clique no curso para informações detalhadas
Curso Duração Informações
ACCESS
Vídeo-Aula - Access 2007 - Curso Básico 2h01m Clique aqui
Vídeo-aula - Access 2007 - Tudo Sobre Consultas 2h30m Clique aqui
Vídeo-Aula - Curso Avançado de Access 2003 2h48m Clique aqui
Vídeo-Aula - Curso Básico de Access 2003 2h49m Clique aqui
EXCEL
Vídeo-aula - Criando uma Agenda no Excel 40m Clique aqui
Vídeo-aula - Curso de Macros e Programação VBA no Excel - Avançado 11h27m Clique aqui
Vídeo-aula - Curso de Macros e Programação VBA no Excel - Básico e Int... 13h02m Clique aqui
Vídeo-aula - Excel 2003 - Curso Básico 3h03m Clique aqui
Vídeo-Aula - Excel 2007 - Curso Avançado 2h30m Clique aqui
Vídeo-Aula - Excel 2007 - Curso Básico 2h35m Clique aqui
Vídeo-Aula - Tabelas Dinâmicas Avançadas no Excel 2003 2h Clique aqui
Vídeo-aula - Tudo Sobre Funções Matriciais no Excel 2h30m Clique aqui
Vídeo-Aula - Tudo Sobre Gráficos no Excel 9h Clique aqui
Vídeo-aula interativa: Tudo Sobre Tabelas Dinâmicas no Excel 2003 2h30m Clique aqui
WORD
Vídeo-Aula - Curso Básico de Word 2003 2h14m Clique aqui
Vídeo-aula - Word 2003 Avançado 1h34m Clique aqui
Vídeo-aula - Word 2003 Básico 2h14m Clique aqui
Vídeo-Aula - Word 2007 - Curso Básico 2h23m Clique aqui
POWERPOINT
Vídeo-Aula - Curso Básico de PowerPoint 2003 2h22m Clique aqui
WINDOWS
Vídeo-Aula - Curso Básico de Windows XP 2h36m Clique aqui
Vídeo-Aula - Windows XP - Formatação e Instalação 3h47m Clique aqui
Vídeo-Aula - Windows XP Básico + Intermediário + Dicas Práticas 8h Clique aqui
PROGRAMAÇÃO
Vídeo-Aula - CALCULADORA HP 12C - Curso Prático em 80 Lições 02h30m Clique aqui
Vídeo-Aula - CALCULADORAS HP 50G - 49G/G+ - 48 GII -- Clique aqui
Vídeo-Aula - Curso Completo de Lógica de Programação 22h15m Clique aqui
Vídeo-Aula - Lógica de Programação com VB.NET 14h Clique aqui
CONCURSOS PÚBLICOS
Vídeo-aula - Excel Para Concursos Públicos - Simulados e Provas Coment... 2h Clique aqui
Vídeo-Aula - Matemática Básica - Módulo I 22h Clique aqui
Vídeo-aula - Matemática Financeira - Teoria e Prática 9h10m Clique aqui
Vídeo-Aula - Raciocínio Lógico - Curso Completo e Prático 12h Clique aqui
Vídeo-aula - Série Concursos: Inglês ESAF - Simulados e Provas Comenta... 2h Clique aqui
BANCO DE DADOS
Vídeo-Aula - Dominando o ORACLE - Curso Prático 12h Clique aqui
Vídeo-Aula - MySQL - Curso Completo e Prático 11h30m Clique aqui
Vídeo-aula - SQL Server 2005 - Reporting Services 2h30m Clique aqui
WEBDESIGN
Vídeo-Aula - Criação de Sites - Curso Básico 2h53m Clique aqui
Vídeo-Aula - Criando Blogs Profissionais - Curso Completo 45m Clique aqui
Vídeo-Aula - Criando Sites Dinâmicos Avançados com DreamWeaver CS3, PH... 4h54m Clique aqui
Vídeo-Aula - Criando Sites Dinâmicos com DreamWeaver CS3, PHP e MySQL 4h05m Clique aqui
Vídeo-Aula - Criando uma Loja Virtual com PHP e MySQL - Curso Completo 19h Clique aqui
Vídeo-Aula - Curso Completo de PHP + HTML + CSS 27h35m Clique aqui
Vídeo-Aula - DreamWeaver CS4 - Curso Prático 1h53m Clique aqui
Vídeo-aula - Flash CS3 - Básico e Prático 4h45m Clique aqui
Vídeo-Aula - Flash MX - Curso Básico 2h26m Clique aqui
Vídeo-Aula - HTML - Curso Prático 2h40m Clique aqui
Vídeo-Aula - Tableless - Crie Sites 100% nos Padrões Web 4h10m Clique aqui
INTERNET
DVD: Hardware - Curso Básico 58m Clique aqui
Vídeo-Aula - Curso de Microinformática Prática 4h35m Clique aqui
Vídeo-aula - Curso Prático de Internet 40m Clique aqui
Vídeo-aula - Curso Prático de Outlook Express 55m Clique aqui
CAD
Vídeo-Aula - Curso de Autocad 2D 4h Clique aqui
Vídeo-Aula - Curso de Autocad 3D 3h45m Clique aqui
VÍDEO E ÁUDIO
DVD: Conversão de Formatos Digitais: Áudio e Vídeo 1h26m Clique aqui
Vídeo-Aula - Como Criar Vídeo-Aulas - Curso Prático 1h04m Clique aqui
Vídeo-Aula - Curso de Teoria Musical 1h Clique aqui
PROGRAMAS GRÁFICOS
Vídeo-Aula -  Flash CS4 - Curso Prático 2h19m Clique aqui
Vídeo-Aula - Curso de CorelDraw X4 - Módulo I 3h Clique aqui
Vídeo-Aula - Curso Profissional Photoshop 4h20m Clique aqui
Vídeo-Aula - Fireworks CS4 - Curso Prático 1h35m Clique aqui
Vídeo-Aula - Photoshop CS4 - Curso Prático 4h24m Clique aqui
ADMINISTRAÇÃO E NEGÓCIOS
DVD - Curso de Oratória - Falando em Público sem Medo 2h36m Clique aqui
LIVROS CAMPEÕES DE VENDA NO SITE
Dossiê Hacker
Universidade Project
Loja de Livros

© Júlio Battisti, 2001 - 2009. Todos os direitos reservados.
É expressamente proibida a reprodução total ou parcial do conteúdo deste site e dos textos disponíveis, seja através de mídia eletrônica, impressa, ou qualquer outra forma de distribuição. Os infratores serão indiciados e punidos com base na lei nº 9.610 de 19/02/1998. Este tutorial só pode ser publicado no site www.juliobattisti.com.br e no site do Autor do tutorial. Nenhum outro site tem permissão para copiar e publicar este tutorial, mesmo que sejam mantidas todas as referências ao autor e ao site www.juliobattisti.com.br. Não é permitida a publicação deste tutorial em nenhum outro site.