ULTIMO CODIGO DE UM INSERT

CAIO.FR.SP 05/11/2012 00:43:06
#413455
Galera, mais uma vez estou aqui
Agora mais com um duvida do que um problema.
Migrei o Banco de dados de alguns softwares meus, já que eles estão ficando lento; efeito da sobrecarga do antigo BD.
Agora estou utilizando o MSSQL 2008, e esta tudo rodando belezinha.
Mas fuçando nas linhas de código, achei um pedaço que me deixou meio insatisfeito.
Ex.
Quando vou gravar dados de uma venda, gravo os dados principais da venda na tabela vendas(codigo, data, cod_cliente,valor...), e tenho os produtos da venda na tabela vendas_prod(cod_venda, cod_prod, qtde...). o que me deixou insatisfeito foi que para inserir o codigo da venda na tabela vendas_prod, eu faço assim: Efetuo o insert na tabela vendas, logo depois faço um select na tabela vendas com alguns paramentos da venda, pois algum cliente pode ter realizado também um venda quase no mesmo instante, logo depois de encontrar o código da venda faço os inserts na tabela vendas_prod com esse código.

não teria uma forma mais simples de obter o código do ultimo insert realizado em cada cliente?
LUIZCOMINO 05/11/2012 08:52:18
#413461
Basta fazer a select com count



ex: insert into Tabela (Codigo,Campo1,Campo2) Values ( (SELECT count(codigo) + 1 FROM Tabela),[ô]Campo1[ô],[ô]Campo2[ô])

deu pra entender?
LLAIA 05/11/2012 10:40:48
#413470
Também poderá fazer após o INSERT:

SELECT @@IDENTITY FROM TABELA



Se vc usa Recordsets para fazer os inserts, vc pode também pegar o ID recém-criado logo após o insert dependendo do cursor que vc atribuiu ao Recordset. Basta ler o campo normalmente após o insert que ele estará com o novo código criado.

PS: Estou levando em conta que vc está usando campo auto-numeração na sua tabela.
Tópico encerrado , respostas não são mais permitidas