none
Capturar valor de uma coluna identity antes de inserir um registro - Sql CE RRS feed

  • Pergunta

  • Amigos,

    Gostaria de saber se existe alguma maneira de capturar o próximo valor, ou mesmo o valor atual de uma coluna identity em um banco de dados Sql Ce 3.5, antes de um registro ser gravado.

    Preciso capturar o valor antes de um novo registro ser gravado, pois meu problema é o seguinte:

    Tenho uma aplicação Win Mobile para registro de pedidos de vendas.  Quando o formulário de cadastro do pedido é exibido na tela do dispositivo, o número do novo pedido (que é o valor da coluna identity) é exibido. 

    Se eu já tiver um pedido cadastrado, eu simplesmente capturo o número do último pedido e incremento + 1.

    Mas se os pedidos forem excluídos da tabela, eu não tenho como saber qual será o numero do próximo pedido.

    Já tente utilizar a variável @@identity, mas para que esta variável retorne um valor, é necessário que um registro já tenha sido inserido. E eu preciso capturar o valor antes de um registro ser inserido.

     

    Att- Miguel Faria


    Miguel Faria
    quarta-feira, 29 de setembro de 2010 18:41

Respostas

  • Me parece que estas funções não estão disponível no Sql Server Ce.

     

    Consegui assim:

     

    select autoinc_next from information_schema.columns where table_name = <N'Table_Name'> and column_name = N'Column_Name'
    


    Miguel Faria
    • Marcado como Resposta Miguel Faria quarta-feira, 6 de outubro de 2010 11:50
    quarta-feira, 6 de outubro de 2010 11:50

Todas as Respostas

  • Miguel,

    Você já tentou a função Scope_Identity ou Ident_Current?


    Pedro Antonio Galvão Junior [MVP | Microsoft Evangelist | Microsoft Partner | Engenheiro de Softwares | Especialista em Banco de Dados | SorBR.Net | Professor Universitário]
    quarta-feira, 29 de setembro de 2010 18:46
    Moderador
  • Me parece que estas funções não estão disponível no Sql Server Ce.

     

    Consegui assim:

     

    select autoinc_next from information_schema.columns where table_name = <N'Table_Name'> and column_name = N'Column_Name'
    


    Miguel Faria
    • Marcado como Resposta Miguel Faria quarta-feira, 6 de outubro de 2010 11:50
    quarta-feira, 6 de outubro de 2010 11:50
  • Miguel,

    Muito legal o seu retorno, então podemos dizer que no SQL CE boa parte das informações relacionadas a objetos podem ser obtidas através dos information_schema.


    Pedro Antonio Galvão Junior [MVP | Microsoft Evangelist | Microsoft Partner | Engenheiro de Softwares | Especialista em Banco de Dados | SorBR.Net | Professor Universitário]
    sexta-feira, 8 de outubro de 2010 18:03
    Moderador