Página anterior Voltar ao início do trabalhoPágina seguinte 

Select Insert (página 2)

Mauricio Junior

 

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 - mauricio[arroba]ascompras.com



 Página anterior Voltar ao início do trabalhoPágina seguinte 



As opiniões expressas em todos os documentos publicados aqui neste site são de responsabilidade exclusiva dos autores e não de Monografias.com. O objetivo de Monografias.com é disponibilizar o conhecimento para toda a sua comunidade. É de responsabilidade de cada leitor o eventual uso que venha a fazer desta informação. Em qualquer caso é obrigatória a citação bibliográfica completa, incluindo o autor e o site Monografias.com.