locked
INSERT INTO em várias linhas ACCESS 2007 RRS feed

  • Pergunta

  • Olá Pessoal,

     

    Gostaria de pedir uma ajuda para um comando bem simples, já fiz várias pesquisas na NET e no forum, mas não estou conseguindo, eu até acho problemas parecidos, só que em outras linguagens. Estou precisando fazer um INSERT em uma tabela de Access 2007, para adicionar vários valores, quando eu realizo para somente um valor funciona, mas quando tento com mais não.

    Estou usando os comandos:

    INSERT INTO Test ( Matrícula, Nome )

    VALUES ("12345", "Fulano");

     

    Atributos criados:

    Matrícula: char (5)

    Nome: char (20)

     

    Obrigado,

     

    Chronos.

     

    quarta-feira, 1 de setembro de 2010 02:51

Respostas

  • Olá Chronos,

     

    o comando INSERT INTO ... VALUES só permite inserir uma linha.

    Ou seja, você teria que rodar várias vezes o mesmo comando para inserir n linhas:

    INSERT INTO Test ( Matrícula, Nome )

    VALUES ("12345", "Fulano");


    INSERT INTO Test ( Matrícula, Nome )

    VALUES ("23456", "Sicrano");

     

    INSERT INTO Test ( Matrícula, Nome )

    VALUES ("34567", "Beltrano");

     

     

    A única forma de fazer um INSERT INTO com várias linhas é você ter em uma tabela os dados de origem, pois aí conseguiria usar INSERT INTO ... SELECT:

    INSERT INTO TabelaDestino ( Matrícula, Nome )

    SELECT Matricula, Nome FROM TabelaOrigem


    Luiz Cláudio Cosenza Vieira da Rocha - http://msmvps.com/blogs/officedev - IT Lab www.itlab.com.br
    domingo, 5 de setembro de 2010 02:30
    Moderador

Todas as Respostas

  • tenta fazer uma consulta "Inserir Tabela", dai vc executa, se tudo der certo, vc vizualiza a consulta em modo sql, pega o codigo e tenta usar na sua aplicação...

    quarta-feira, 1 de setembro de 2010 16:39
  • Tiago, eu já tentei dessa forma, mas na consulta "Inserir Tabela", eu consigo inserir vários atributos, mas não vários valores em diversas linhas desses atributos.
    quarta-feira, 1 de setembro de 2010 17:47
  • Olá Chronos,

     

    o comando INSERT INTO ... VALUES só permite inserir uma linha.

    Ou seja, você teria que rodar várias vezes o mesmo comando para inserir n linhas:

    INSERT INTO Test ( Matrícula, Nome )

    VALUES ("12345", "Fulano");


    INSERT INTO Test ( Matrícula, Nome )

    VALUES ("23456", "Sicrano");

     

    INSERT INTO Test ( Matrícula, Nome )

    VALUES ("34567", "Beltrano");

     

     

    A única forma de fazer um INSERT INTO com várias linhas é você ter em uma tabela os dados de origem, pois aí conseguiria usar INSERT INTO ... SELECT:

    INSERT INTO TabelaDestino ( Matrícula, Nome )

    SELECT Matricula, Nome FROM TabelaOrigem


    Luiz Cláudio Cosenza Vieira da Rocha - http://msmvps.com/blogs/officedev - IT Lab www.itlab.com.br
    domingo, 5 de setembro de 2010 02:30
    Moderador
  • Olá Luiz,

     

                  Funcionou!!!!!!!! Muito obrigado! Agora, sem querer ser abusado, poderia aproveita um pouco mais do seu conhecimento para tirar outra dúvida, agora com UPDATE...

    por exemplo:

    - Eu inseri os dados com o INSERT

    Matrícula  - Nome

    12345      - Fulano

    54321      - Beltrano

    32145      - Fulano

     

    Se eu pedir pra atualizar o "Fulano" eu consigo com (Múltiplos registros com dados iguais)

    UPDATE Test SET Nome = "Fulano Sobrenome"

    WHERE Nome = "Fulano";

     

    Mas eu gostaria de saber se é possível eu alterar múltiplos registros com dados diferentes, tipo:

           Antes

    Matrícula  - Nome

    12345      - Fulano

    54321      - Beltrano

    32145      - Fulano

            Depois

    12345      - Fulano Sobrenome 1

    54321      - Beltrano Sobrenome 2

    32145      - Fulano Sobrenome 3

     

    Mais uma vez obrigado,

     

    Sds,

     

    Chronos.

    quarta-feira, 8 de setembro de 2010 03:20
  • Olá,

     

    é possível sim fazer UPDATE com valores diferentes. Para isto, em vez de passar um valor fixo no comando SET, passe o nome de um campo. Exemplo:

     

    UPDATE tbl_TuaTabela

    SET TeuCampoA = TeuCampoB

    WHERE TeuCampoNome = "Fulano"

     

    Veja que mesmo que o valor esteja em outra tabela, você pode fazer um JOIN com a tabela a ser atualizada.


    Luiz Cláudio Cosenza Vieira da Rocha - http://msmvps.com/blogs/officedev - IT Lab www.itlab.com.br
    sábado, 11 de setembro de 2010 23:40
    Moderador