[E-BOOK GRÁTIS]: Windows 7 Básico, 476 pgs - QUERO RECEBER!
Você está em: PrincipalTutoriaisMauricioborges : Insertselect001
Quer receber novidades e e-books gratuitos?
›››

Conheça o Júlio Battisti

Julio Battisti - Autor de mais de 25 livros de informática Júlio Battisti tem mais de 36 livros publicados, dezenas de e-books e é certificado Microsoft.

Ganhe o e-book a Seguir

e-book grátis Windows 7 Básico

476 páginas



Windows Server 2008 - Inscreva-se já!

Curta Nossa Fanpage

Loja Virtual do Site

Livros do Julio Battisti

FILTRO DE TUTORIAIS:




INSERT SELECT

 

Olá pessoal, meu nome é Mauricio Junior e estou com vocês há algum tempo desenvolvendo artigos e vídeos. Espero que possa ajudar a todos porque esse é o meu objetivo. Divulgar mais e mais essa grande tecnologia que é .NET, principalmente com essa nova IDE desenvolvida pela Microsoft.

 

Para pegar essa ferramenta grátis, basta acessar o endereço abaixo:

 

http://msdn.microsoft.com/vstudio/express/

 

Hoje desenvolverei um artigo para SQL SERVER cujo poderei ajudar muito em desenvolver uma funcionalidade dentro de uma STORED PROCEDURE.

 

O princípio desse artigo é o seguinte: Tenho duas tabelas no banco de dados cujo preciso pegar os valores de acordo com condição e inseri-los dentro da segunda tabela do banco com os valores selecionados mais os outros que foram passados.

 

Tabela 1

 

Descrição dos campos

 

 

Tabela 2

 

Descrição dos campos

 

 

Na primeira tabela, possuo alguns dados cujo preenchi na mão mesmo. É bem simples o artigo e útil. Segue os dados preenchidos abaixo:

 

 

Nesse próximo passo, montarei uma stored procedure para buscar os dados e inserir na mesma hora na tabela 2. Para provar que ainda não existe dados na tabela 2, segue a ilustração.

 

 

Cliquei com o botão direito em cima de STORED PROCEDURES e escolhi a opção New Stored Procedure.. Com isso a IDE SQL Entreprise Manager mostra uma outra tela para ser preenchida. Gosto de lembrar que o mesmo pode ser feito por comandos SQL normalmente ou STORED PROCEDURE. Este artigo é mais um conceito para melhorar a forma de pegar os dados e inseri-los tão rapidamente que todos irão ficar espantados.

 

Antes de começar a desenvolver recomendo algumas dicas em relação a SP:

 

- Não coloque uma stored procedure iniciando com o nome SP, porque o banco de dados faz uma varredura em todas as SPs dentro do sistema. Com isso fica lento na hora de ler, mas essa lentidão para poucas SPs não pode ser visto a olho nu;

 

- Sempre comentar as SPs dizendo o nome do criador, de quem alterou, data e o que a mesma faz, documentar é uma boa prática;

 

- Evite chamar SPs dentro de SPs, faça funções que funcionará melhor.

 

Segue o código do INSERT SELECT:

 

CREATE PROCEDURE PROC_SELECTINSERT

            @CH_TB1                 AS INT,
            @DESCRICAO         AS NVARCHAR(50)

AS

 

            INSERT INTO
                        TB2
                        (CH_TB1, VALOR_TB2, NOME_TB2, DT_TB2, DESCRICAO_TB2)
                        (SELECT
                                   CH_TB1,VALOR_TB1, NOME_TB1, DT_TB1,  @DESCRICAO
                        FROM
                                   TB1
                        WHERE
                                    CH_TB1 = @CH_TB1)

GO

 

Explicação:

 

Note que o os parâmetros de entrada são do tipo INT e NVARCHAR. É uma chave e uma descrição para inserir na tabela TB2. O insert vem primeiro com os campos, o select vem logo após os campos, porém seguindo a ordem dos mesmos campos do insert.

 

Essa ordem é apenas de tipo e de valores que irão ser inseridos no banco de dados, por exemplo:

 

Chave com Chave, Data com Data, Descrição com Descrição.

 

O campos @Descricao significa que o mesmo será passado pelo sistema. Dentro da condição WHERE é passada pelo sistema @CH_TB1 para dentro da STORED PROCEDURE.

 

Depois de criada, executei a mesma dentro do SQL QUERY ANALYZER.

 

 

O mesmo foi inserido automaticamente com os valores passados corretamente.

 

Segue o select das duas tabelas e compare os dados:

 

 

Espero ter ajudado em mais um artigo.

 

Abraços.

 

 

Mauricio Junior

 

Community: www.aspneti.com

 

Dúvidas?

Utilize a área de comentários a seguir.

Me ajude a divulgar este conteúdo gratuito!

Use a área de comentários a seguir, diga o que achou desta lição, o que está achando do curso.
Compartilhe no Facebook, no Google+, Twitter e Pinterest.

Indique para seus amigos. Quanto mais comentários forem feitos, mais lições serão publicadas.

Quer receber novidades e e-books gratuitos?
›››

Vídeo-Aulas

  • Access
  • Excel
  • Programação
  • Windows/Linux
  • Redes
  • + Todas as categorias
  • E-books

  • Access
  • Excel
  • Programação
  • Windows/Linux
  • Redes
  • + Todas as categorias
  • Livros

  • Administração
  • Excel
  • Programação
  • Windows/Linux
  • Redes
  • + Todas as categorias
  • Cursos Online

  • Banco de Dados
  • Carreira
  • Criação/Web
  • Excel/Projetos
  • Formação
  • + Todas as categorias
  • Conteúdo Gratuito

  • +1500 Artigos e Tutoriais
  • ASP 3.0
  • ASP.NET
  • Access Básico
  • Access Avançado
  • Excel Básico - 120 lições
  • Excel Avançado - 120 lições
  • SQL Server 2005
  • Windows 7
  • Windows XP
  • Windows 2003 Server
  • Windows 2008 Server
  • Novidades e E-books grátis

    Fique por dentro das novidades, lançamento de livros, cursos, e-books e vídeo-aulas, e receba ofertas de e-books e vídeo-aulas gratuitas para download.



    Institucional

  • Quem somos
  • Garantia de Entrega
  • Formas de Pagamento
  • Contato
  • O Autor
  • Endereço

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

  • Atendimento: (51) 3717-3796 - webmaster@juliobattisti.com.br Todos os direitos reservados, Júlio Battisti 2001-2014 ®