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