Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Cesão

Recuperar último registro inserido

Recommended Posts

Olá, amigos.

 

Tenho uma página de inserção onde preciso inserir dados em duas tabelas relacioandas. Antigamente, eu inseria os dados na primeira, dava um comando para pegar o ID do último registro inserido e inseria os dados na segunda se acordo com esse ID.

 

Nessa época eu usava o ID do registro como int identity, e por isso, eu usava o comando abaixo para recuperar o último registro:

 

SQL_ID = "SELECT @@identity"
Set TB = DB.execute(SQL_ID)
ID_PEDIDO = TB(0)
TB.Close

O problema é que hoje em dia não uso mais int identity como ID dos registros.. uso varchar(40) default newid().

Como faço para recuperar os dados do último registro inserido nesse caso?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Sua coluna ID segue alguma ordem alfabética ou numérica? Ou você tem alguma coluna na sua tabela que armazena a data que foi feita a entrada dos dados?

 

Se tiver algo do tipo, você pode fazer um select com top 1 e ordenar por ordem decrescente.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Sim, possuo de data. Mas esse tipo de select não é o melhor, pois se alguém fizer um insert na mesma hora, ele vai recuperar o insert de outra pessoa. No caso do identity, ele volta até a linha onde há o identity e recupera, na mesma ação do insert, recuperando com 100% de vezes o registro que aquela pessoa inseriu. Existe alguma outra forma? Alguma que recupere o meu ID de uma forma parecida com o select @@identity?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Difícil então heim.

 

Você pode criar um outro campo em sua tabela de auto-incremento só para poder controlar isso? Não seria o codigo principal.

 

Tentei pesquisar alguma coisa a respeito, e só o que achei foram a dica que dei e gente falando sobre auto-numeração.

 

Qual banco de dados está usando?

Compartilhar este post


Link para o post
Compartilhar em outros sites

tentou usar a função LAST () retorna o último valor da coluna selecionada.

 

SELECT LAST(column_name) FROM table_name

Compartilhar este post


Link para o post
Compartilhar em outros sites

tentou usar a função LAST () retorna o último valor da coluna selecionada.

 

SELECT LAST(column_name) FROM table_name

Interessante isso Xanburzum, essa função funciona em quais bancos? No Access vi que funciona, mas no SQL Server 2000 não.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.