none
pegar ultimo ID + 1 no insert RRS feed

  • Pergunta

  • preciso ajustar esse select pra trazer o ultimo ID somando + 1 ou seja, precisa incluir os itens da tabela "LAB_EXAMES" com ID sem duplicidade

    SELECT  (select max(smitem_id) +1 from smitem),SubGrupo,[Descrição SMITEM],SUBSTRING([Prazo de Entrega],1,2)'1',[Código_DB] FROM EXAMES_LAB

    Meu resultado precisa ser:

    15 | 1010 | TESTE1 | 2019-01-01| Z12 

    16 | 1010 | TESTE2 | 2019-01-01| Zdd2

    17 | 1010 | TESTE3 | 2019-01-01| Z15

    Mas está saindo 

    15 | 1010 | TESTE1 | 2019-01-01| Z12

    15 | 1010 | TESTE2 | 2019-01-01| Zdd2

    15 | 1010 | TESTE3 | 2019-01-01| Z15


    Droberti


    • Editado Drobertii quinta-feira, 28 de novembro de 2019 20:30
    quinta-feira, 28 de novembro de 2019 20:27

Respostas

  • Boa tarde,

    Experimente fazer um teste dessa forma:

    with CTE_Max as
    (
        select max(smitem_id) as smitem_id_max from smitem
    )
    
    SELECT  
        row_number() over(order by (select null)) + c.smitem_id_max,
        e.SubGrupo,
        e.[Descrição SMITEM],
        SUBSTRING(e.[Prazo de Entrega], 1, 2),
        e.[Código_DB] 
    FROM EXAMES_LAB as e
    cross join CTE_Max as c
    

    Espero que ajude


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

    • Sugerido como Resposta Junior Galvão - MVPMVP quinta-feira, 28 de novembro de 2019 21:20
    • Marcado como Resposta Drobertii quinta-feira, 28 de novembro de 2019 22:05
    quinta-feira, 28 de novembro de 2019 20:50

Todas as Respostas

  • Boa tarde,

    Experimente fazer um teste dessa forma:

    with CTE_Max as
    (
        select max(smitem_id) as smitem_id_max from smitem
    )
    
    SELECT  
        row_number() over(order by (select null)) + c.smitem_id_max,
        e.SubGrupo,
        e.[Descrição SMITEM],
        SUBSTRING(e.[Prazo de Entrega], 1, 2),
        e.[Código_DB] 
    FROM EXAMES_LAB as e
    cross join CTE_Max as c
    

    Espero que ajude


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

    • Sugerido como Resposta Junior Galvão - MVPMVP quinta-feira, 28 de novembro de 2019 21:20
    • Marcado como Resposta Drobertii quinta-feira, 28 de novembro de 2019 22:05
    quinta-feira, 28 de novembro de 2019 20:50
  • EspertoMetal,

    Além das observações e sugestões apresentadas anteriormente, uma outra alternativa que boa partes dos ERPs para pequenas e médias empresas utiliza é justamente ter uma tabela que controle da numeração, em que a cada manipulação de dados, vai sendo atualizada de acordo com a numeração gerada.

    A muito tempo realizei uma consultoria em uma empresa que tinha justamente esta necessidade, voltada para um sistema do governo chamado Ficha Modelo 3, para este caso implementamos justamente o controle desta forma, o qual atendeu muito bem, inclusive independente da quantidade de usuários e processos sendo trabalhado, antes da confirmação do ID, realizávamos uma validação na tabela de controle para obter o número a ser utilizado e posteriormente incrementado. 


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

    quinta-feira, 28 de novembro de 2019 21:28
  • Isso mesmo!

    Funcionou legal.

    Obrigado


    Droberti

    quinta-feira, 28 de novembro de 2019 22:05