none
Select no proximo campo a ser inserido RRS feed

  • Pergunta

  • boa tarde,

      Eu gostaria de tipo de select eu uso para poder pegar o próximo campo de uma tabela a ser inserido, por exemplo pra pegar o ultimo cadastrado eu utilizo select IDENT_CURRENT, e como eu faço pra pegar o proximo?

    segunda-feira, 26 de março de 2007 12:22

Todas as Respostas

  • Bom dia Garlant existem várias formas de fazer isso, uma dela é utilizar o max. segue um exemplo abaixo.Quaquer coisa retorne

     

    SELECT MAX(Indice_Primario) + 1 FROM SuaTabela

     

    Espero ter ajudado

    segunda-feira, 26 de março de 2007 12:28
  • Garlant,

    Como assim próximo?

    Através de qual informação você identificar como próximo registro?

    segunda-feira, 26 de março de 2007 12:30
  • Garlant vc pode utilizar o @@identiy +  1

     

    DECLARE @VALOR INT

    SELECT @VALOR = IDENTITY_CURRENT + `1

    OU

     

    SET @VALOR = @@IDENTITY + 1

    qualquer dúvida retorne

    abs

    segunda-feira, 26 de março de 2007 13:09
  • Garlant,

       Uma boa solução é utilizar um mix entre o Ident_Current  e o Ident_Incr. O uso do Max não é a melhor alternativa, porque você pode ter valores identity não utilizáveis (que foram anulados por um rollback, por exemplo). De uma olhada no meu exemplo abaixo, o Ident_Incr vai somar a exata quantidade de incremento definida para sua tabela:

    select IDENT_Current ( 'TABELA' )+ IDENT_Incr ( 'TABELA' )

    segunda-feira, 26 de março de 2007 13:11
  • Anderson, André e Roberto,

    Justamente por isso eu perguntei ao Garlant, como ele identifica o próximo, eu também pensei em ter como base o último registro.

    Mas queria entender como ele estava pensado.

     

     

    segunda-feira, 26 de março de 2007 13:19