none
armazenando os dados de um query em outra tabela RRS feed

  • Pergunta

  • olá amigos,

     

    quero saber como posso fazer para pegar os dados de retorno de uma query e armazena-los em outra tabela informando que o campo 2 da tabela a será armazenado no campo 5 da tabela b.

     

    obrigado e conto com vocês.

    quarta-feira, 5 de março de 2008 13:24

Respostas

  • vc. pode colocar um exemplo da sua consulta, fica mais simples de passar o exemplo.

     

    Abs;

     

    quarta-feira, 5 de março de 2008 13:54
  • Carlos, foi como o Colla havia exemplificado:

     

    Code Snippet

    INSERT INTO tabela2 (Campo1, Campo2, Campo3, ...)

    SELECT Campo1, Campo2, Campo3 From Tabela1 Where Campo1=100

     

     

     

    Esse processo é conhecido como insert com select ou seja você está fazendo uma inserção a partir de uma sub-query, caso os campos da tabela2 não sejam exatamente nessa mesma ordem não tem problema, apenas declare o nome dos campos na ordem que devem ser inseridos.

     

    Qualquer dúvida retorne.

     

    Abraços,

    quarta-feira, 5 de março de 2008 20:29
  • vc. pode fazer asism

    update tabela1 set campo1 = Drv.campo2

    from tabela1 inner join (select campo2 from ... ) Drv on Drv.Chave = Tabela1.Chave

     

     

    Abs;

    quinta-feira, 6 de março de 2008 11:56

Todas as Respostas

  • sim

     

    insert into tabela ( campo5 .... )

    select campo2 from ...

     

     

    e so vc. colocar na sequencia correta o nome dos campo scom o retorno da consulta.

     

     

    abs;

     

    quarta-feira, 5 de março de 2008 13:32
  • não entendi tentei executar essa instrução no query analyser e deu erro de contexto, nãoé permitido

    quarta-feira, 5 de março de 2008 13:49
  • vc. pode colocar um exemplo da sua consulta, fica mais simples de passar o exemplo.

     

    Abs;

     

    quarta-feira, 5 de março de 2008 13:54
  •  

    SELECT Campo1, Campo2, Campo3 From Tabela1 Where Campo1=100

     

    Eu quero pegar esse resultado e Inserir em outra Tabela, por exemplo, nesse resultado pode conter 5 registros e quero que todos os registros sejam inseridos nessa outra tabela.

     

     

    quarta-feira, 5 de março de 2008 14:02
  • Carlos, foi como o Colla havia exemplificado:

     

    Code Snippet

    INSERT INTO tabela2 (Campo1, Campo2, Campo3, ...)

    SELECT Campo1, Campo2, Campo3 From Tabela1 Where Campo1=100

     

     

     

    Esse processo é conhecido como insert com select ou seja você está fazendo uma inserção a partir de uma sub-query, caso os campos da tabela2 não sejam exatamente nessa mesma ordem não tem problema, apenas declare o nome dos campos na ordem que devem ser inseridos.

     

    Qualquer dúvida retorne.

     

    Abraços,

    quarta-feira, 5 de março de 2008 20:29
  • Sim, agora sim entendei e deu certo.

     

    Quero saber como fazer um update nesse mesmo esquema, atualizando os dados conforme a consulta.

     

    Abs


    Carlos

    quinta-feira, 6 de março de 2008 11:45
  • vc. pode fazer asism

    update tabela1 set campo1 = Drv.campo2

    from tabela1 inner join (select campo2 from ... ) Drv on Drv.Chave = Tabela1.Chave

     

     

    Abs;

    quinta-feira, 6 de março de 2008 11:56
  • UPDATE tabela1 SET status = Drv.status
    FROM tabela1 INNER JOIN (SELECT status
    FROM tabela2) Drv on Drv.Chave = tabela1.Chave

     

    dá o erro:

    Server: Msg 207, Level 16, State 1, Line 1
    Invalid column name 'Chave'.


    quinta-feira, 6 de março de 2008 12:20
  • vc. vai precisar de campo para relacionar a tabela1 com a tabela2, a chave que eu passei e apenas um exemplo, estou falando de chave de tabela ou seja o campo que identifica a linha como unica para ambas as tabelas, veja qual campo e comun e unico entre as duas tabelas para fazer o update.

     

    Abs.;

     

    quinta-feira, 6 de março de 2008 13:16
  • entendido mestre.

     

    agora funcionou, obrigado pela dica.

     

    estou começando a brincar com stores, sempre trabalhei no vb fazendo recordset em cima de recordset e agora vi que no sql server tudo é mais simples e mais fácil, mais prático e mais confiavel.

     

    obrigado,

     

     

    quinta-feira, 6 de março de 2008 13:24