SELECT INSERT
Descrição do artigo publicado no aspneti.com, cada artigo com seu resumo
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
Antes de começar a desenvolver recomendo algumas dicas
- Não coloque uma stored procedure iniciando com o nome SP, porque o banco de dados faz uma varredura
- 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
Subscribe ecode10.com
Receive our latest updates about programming languages, software, database, books, ebooks, classes, jobs and more.
You can cancel anytime.
Log In
Related articles
SELECT Format Date Time for many countries
It is a good tip to use day by day
Creating a SiteMap using SQL Database
Como indexar melhor meu site e links?
Transformando linhas em colunas usando SQL Server
veja como funciona