none
Como Gerar Uma Única SQL Para Inserir Múltiplos Registros RRS feed

  • Pergunta

  • Pessoal boa noite,  preciso da ajuda de vocês, tenho que inserir 1300 registros

    Em duas tabelas, so que na segunda tabela para ser inserido esses números preciso de um id fone que foi gerado na primeira tabela de acordo com cada numero inserido

    1 passo

    INSERT INTO ..TB_TEL_FONES

    (ID_UNID, [DDD], [NUMERO], [TIPO_LINHA], [DATA_CONTRATACAO], [TP_ENTRONCAMENTO], [CODIGO_TELE], [TP_150_NIVEL])

    VALUES

    (175,                                         

    '11',                                          -

    '99999999',  <------preciso inserir 1300 numeros arqui, o resto fica igual

    1,

    '2019-05-08 00:00:00',

    4,

    777,

    1)

    GO

    2  passo

    Preciso inserir os mesmos números em outra tabela so que nessa outra ele precisa ter o mesmo id fone que foi gerado na tabela fones, id fone e o mesmo numero que foi inserido , cada numero gera um id fone que preciso levar pra outra tabela

    INSERT INTO ..TB_TEL_TELEFONES

    (ID_FONE, ID_UNID, DDD, NUMERO, fk_entroncamento, tp_entroncamento, tp_tecnologia, contrato, data_contratacao, codigo_tele, data_inclusao, observacoes, nu_pgo)

    VALUES

    (825821      ----ESSE ID FONE FOI GERADO NA OUTRA , SO QUE 1300 VEZES DIFERENTES

     175,                                         

    '11',

    '9999999',   ---- PRECISO INSERIR TAMBEM 1300 AQUI NESSA MESMA QUERY

    '66789',                               

    4,

    'LINHA MÓVEL',

    '1070,

    '2019-05-08 00:00:00',

    '800',

    '2019-12-02 00:00:00',

    'Números cadastrados conforme solicitado no requerimento WO0000042837685 no dia 20/12/2020',

    '1')


    quarta-feira, 12 de agosto de 2020 00:42

Todas as Respostas

  • Bom dia,

    Onde estão os números de telefone a serem inseridos? Estão em uma tabela?


    Assinatura: http://www.imoveisemexposicao.com.br

    quarta-feira, 12 de agosto de 2020 12:54
  • Ola bom dia

    nao estao em nenhuma tabela ainda serão inseridos na base pela primeira vez.

    quarta-feira, 12 de agosto de 2020 15:22
  • ou olha so pra ficar mais fácil ou se não tiver como, uma solução para apenas inserir na outra tabela novamente no caso na sgunda tabela que precisa herdar os ids fones de acordo com cada numero.
    quarta-feira, 12 de agosto de 2020 16:30
  • dr.khan,

    Mas existe alguma relação entre estas possíveis tabelas?


    Pedro Antonio Galvão Junior [MVP | MCC | MSTC | MIE | MTAC | Microsoft Evangelist | Microsoft Partner | Engenheiro de Softwares | Especialista em Banco de Dados Relacional e Data Warehouse | Professor Universitário | @JuniorGalvaoMVP | http://pedrogalvaojunior.wordpress.com]

    quarta-feira, 12 de agosto de 2020 21:35
  • Ola junior existe sim,

    ja me ajudaria muito assim, se eu conseguir criar a segunda tabela com os dados existentes da primeira tabela,

    com mandei ai em cima no passo 1, essa tabela que seria a primeira eu vou inserir todas linhas nela,

    e nessa e igrada um id_fone unico para cada numero que for inserido, quando vou para segunda tabela no passo 2, queria inserir novamente eles números com um insert com select , e com isso trazer os numeros como também  os id_fone que foram gerados na primeira tabela e nao to conseguindo fazer isso, observacao nao pode ser um numero por vez pois são 1300 linhas 

    quarta-feira, 12 de agosto de 2020 22:05
  • dr.khan,

    Ok, minha sugestão inicial, tente primeiro montar o Select que deverá trazer os dados que você deseja, tendo este Select pronto com os dados e da forma que você deseja, podemos realizar o Insert direcionando para a tabela desejada.


    Pedro Antonio Galvão Junior [MVP | MCC | MSTC | MIE | MTAC | Microsoft Evangelist | Microsoft Partner | Engenheiro de Softwares | Especialista em Banco de Dados Relacional e Data Warehouse | Professor Universitário | @JuniorGalvaoMVP | http://pedrogalvaojunior.wordpress.com]

    quarta-feira, 12 de agosto de 2020 22:10
  • dr.khan, não sei se entendi corretamente mas acredito que uma alternativa seja utilizar a clausula Output para armazenar os valores do primeiro Insert em uma variável do tipo tabela, para depois inserir esses valores na segunda tabela. Ex:

    declare @Inserted table (Id_Fone int, DDD varchar(5), Numero varchar(12));
    
    INSERT INTO ..TB_TEL_FONES
    (ID_UNID, [DDD], [NUMERO], [TIPO_LINHA], [DATA_CONTRATACAO], [TP_ENTRONCAMENTO], [CODIGO_TELE], [TP_150_NIVEL])
    
    OUTPUT inserted.Id_Fone, inserted.DDD, inserted.Numero
    INTO @Inserted
    
    VALUES 
    (175, '11', '99999999', 1, '2019-05-08 00:00:00', 4, 777, 1);
    
    
    INSERT INTO ..TB_TEL_TELEFONES
    (ID_FONE, ID_UNID, DDD, NUMERO, fk_entroncamento, tp_entroncamento, tp_tecnologia, contrato, data_contratacao, codigo_tele, data_inclusao, observacoes, nu_pgo)
    
    SELECT
        Id_Fone,
        175,                                         
        DDD,
        Numero,
        '66789',                               
        4,
        'LINHA MÓVEL',
        '1070,
        '2019-05-08 00:00:00',
        '800',
        '2019-12-02 00:00:00',
        'Números cadastrados conforme solicitado no requerimento WO0000042837685 no dia 20/12/2020',
        '1'
    FROM @Inserted
    

    Espero que ajude


    Assinatura: http://www.imoveisemexposicao.com.br

    quinta-feira, 13 de agosto de 2020 15:03
  • dr.khan, não sei se entendi corretamente mas acredito que uma alternativa seja utilizar a clausula Output para armazenar os valores do primeiro Insert em uma variável do tipo tabela, para depois inserir esses valores na segunda tabela. Ex:

    declare @Inserted table (Id_Fone int, DDD varchar(5), Numero varchar(12));
    
    INSERT INTO ..TB_TEL_FONES
    (ID_UNID, [DDD], [NUMERO], [TIPO_LINHA], [DATA_CONTRATACAO], [TP_ENTRONCAMENTO], [CODIGO_TELE], [TP_150_NIVEL])
    
    OUTPUT inserted.Id_Fone, inserted.DDD, inserted.Numero
    INTO @Inserted
    
    VALUES 
    (175, '11', '99999999', 1, '2019-05-08 00:00:00', 4, 777, 1);
    
    
    INSERT INTO ..TB_TEL_TELEFONES
    (ID_FONE, ID_UNID, DDD, NUMERO, fk_entroncamento, tp_entroncamento, tp_tecnologia, contrato, data_contratacao, codigo_tele, data_inclusao, observacoes, nu_pgo)
    
    SELECT
        Id_Fone,
        175,                                         
        DDD,
        Numero,
        '66789',                               
        4,
        'LINHA MÓVEL',
        '1070,
        '2019-05-08 00:00:00',
        '800',
        '2019-12-02 00:00:00',
        'Números cadastrados conforme solicitado no requerimento WO0000042837685 no dia 20/12/2020',
        '1'
    FROM @Inserted

    Espero que ajude


    Assinatura: http://www.imoveisemexposicao.com.br

    Gapimex,

    Realmente pode ser uma possibilidade....


    Pedro Antonio Galvão Junior [MVP | MCC | MSTC | MIE | MTAC | Microsoft Evangelist | Microsoft Partner | Engenheiro de Softwares | Especialista em Banco de Dados Relacional e Data Warehouse | Professor Universitário | @JuniorGalvaoMVP | http://pedrogalvaojunior.wordpress.com]

    sexta-feira, 14 de agosto de 2020 15:43