A partir do momento que você está fazendo uma requisição HTTP acabou o
mono-usuário e o mono-thread!

Lembre-se que HTTP é multi-thread (já pensou o Google atender apenas a
1 usuário por vez?)

E, pela sessão ser a mesma, qualquer acesso à base ferrará com o
IDENTITY. IDENTITY deve ser retornado IMEDIATAMENTE após o Insert (por
isso costuma-se fazer o Insert e o Select na mesma query e obter o
resultado do "insert" via escalar). Ou usar procs com o mesmo
propósito.

2010/2/5 Collin Peterson Mendes Chaves <collinpeters...@gmail.com>:
> eu estou usando a linguagem asp com o flex. eu tenho vários arquivos asp
> responsáveis por inserções no banco de dados, pois quando eu vou adicionar
> um registro em uma tabela eu chamo (através do httpservice) os outros
> arquivos asp contendo inserções em alguns bancos e no inicio desses arquivos
> eu já busco o idmax da tabela principal. vi na documentação books online do
> sql server o IDENT_CURRENT o qual coloquei no projeto. fazendo testes em um
> ambiente mono-usuário percebo que os dados são inseridos às vezes
> corretamente e em outros momentos vejo que alguma parte do registro se
> vincula a um registro anterior e não ao correntemente inserido.
>
> é como se o flex as vezes não entendesse com esse comando que o registro é o
> recentemente inserido e não o anterior a ele, sei lá por causa de cache ou
> alguma coisa.
> mas obrigado júlio pelas explicações. :)
>
>
> Em 4 de fevereiro de 2010 19:12, Júlio César Ködel <jcko...@gmail.com>
> escreveu:
>>
>> SELECT @@IDENTITY ou SELECT SCOPE_IDENTITY() retorna o último ID
>> inserido em qualquer tabela (dentro do escopo)
>>
>> SELECT IDENT_CURRENT( ' TableName ' ) retorna o último ID inserido na
>> tabela 'TableName'
>>
>> Note que @@IDENTITY é igual a SCOPE_IDENTITY() e que ela pega o último
>> ID inserido NA SESSÃO ATUAL, portanto, a menos que o teu SELECT não
>> seja imediatamente após a query, não tem como falhar.
>>
>> Está usando qual linguagem no servidor? Se for .net, use Linq to SQL
>> ou ADO Entities Framework e pare de se preocupar =)
>>
>> 2010/2/4 Matheus <mabro...@gmail.com>:
>> > Não entendi quando você diz que ele pega o maxid de uma tabela
>> > anterior? Na verdade acho que você quis dizer de uma tupla anterior né
>> > não? Se for isso verifique se você não está chamando a funcao de pegar
>> > o maxId antes de cadastrar.
>> > Abs
>> >
>> > On 4 fev, 12:25, Collin Peterson Mendes Chaves
>> > <collinpeters...@gmail.com> wrote:
>> >> o ideal era que se tivesse esse @@identity podendo selecionar a tabela
>> >> a
>> >> qual tenha aquele valor
>> >>
>> >> Em 4 de fevereiro de 2010 10:48, Collin Peterson Mendes Chaves <
>> >> collinpeters...@gmail.com> escreveu:
>> >>
>> >> > oi Júlio, estou realmente usando sql server. eu estou usando
>> >> > realmente o
>> >> > select max(id). Agora esse select @@identity ele representa sempre o
>> >> > valor
>> >> > recentemente inserido. se eu adicionar um registro ele pega o id do
>> >> > que foi
>> >> > inserido, mas se no meio do codigo eu inserir em outra tabela dados
>> >> > desse
>> >> > registro ele assume o id mais recente o dessa outra tabela inserida?
>> >> > Em 4 de fevereiro de 2010 10:22, Júlio César Ködel
>> >> > <jcko...@gmail.com>escreveu:
>> >>
>> >> > SELECT MAX(ID) functiona maravilhosamente bem...
>> >>
>> >> >> ...se estiver em um ambiente mono-usuário, mono-thread =P
>> >>
>> >> >> Diversas bases tem suporte para obter o último Identity inserido,
>> >> >> vide
>> >> >> e-mail da Gabriela.
>> >>
>> >> >> Para MSSQL, seria SELECT @@IDENTITY
>> >>
>> >> >> 2010/2/4 Collin Peterson Mendes Chaves <collinpeters...@gmail.com>:
>> >> >>  > fazendo um teste aqui, percebi que ele as vezes pega o max id não
>> >> >> de
>> >> >> uma
>> >> >> > tabela que eu acabo de inserir, mas de uma imediatamente anterior
>> >>
>> >> >> > Em 4 de fevereiro de 2010 10:01, Collin Peterson Mendes Chaves
>> >> >> > <collinpeters...@gmail.com> escreveu:
>> >>
>> >> >> >> pessoal estou com um problema que acho ser grave. tenho uma
>> >> >> >> aplicação
>> >> >> que
>> >> >> >> preenche informações em várias tabelas diferentes. na aplicação
>> >> >> >> quando
>> >> >> >> insiro um registro em uma tabela eu seleciono seu id (usando max
>> >> >> >> id
>> >> >> >> inserido) para pegar esse id e inserir em uma outra tabela outras
>> >> >> >> informações. uso o mesmo procedimento para selecionar o id da
>> >> >> >> primeira
>> >> >> >> tabela inserida para preencher outras tabelas. na hora de
>> >> >> >> consultar no
>> >> >> banco
>> >> >> >> de dados vejo que alguns registros inseridos não aparecem por
>> >> >> >> completo.
>> >> >> >> Eu aqui pensando no que poderia ser, eu acho que o problema que
>> >> >> >> pode
>> >> >> está
>> >> >> >> ocorrendo é quando muita gente está inserindo dados ao mesmo
>> >> >> >> tempo,
>> >> >> pois na
>> >> >> >> hora de selecionar o max id uma vez pode ser um valor e em outra
>> >> >> >> vez
>> >> >> pode
>> >> >> >> ser outro já que outra pessoa tb está concorrentemente inserido.
>> >> >> >> só que
>> >> >> vejo
>> >> >> >> o processo de inserção tão rápido que não sei se esse é o real
>> >> >> problema. se
>> >> >> >> for alguém pode me ajudar a resolver? (não sei se estou sendo
>> >> >> >> claro)
>> >>
>> >> >> > --
>> >> >> > Você recebeu esta mensagem porque está inscrito na lista "flexdev"
>> >> >> > Para enviar uma mensagem, envie um e-mail para
>> >> >> > flexdev@googlegroups.com
>> >> >> > Para sair da lista, envie um email em branco para
>> >> >> > flexdev-unsubscr...@googlegroups.com
>> >> >> > Mais opções estão disponíveis
>> >> >> > emhttp://groups.google.com/group/flexdev
>> >>
>> >> >> --
>> >> >> []
>> >> >> Júlio César Ködel G.
>> >> >> "Você pode ficar sem comer durante 3 dias, sem beber durante 2 dias,
>> >> >> mas não pode ficar sem respirar por mais de 5 minutos.
>> >> >> Então, antes de imprimir isso, lembre-se que o oxigênio deste
>> >> >> planeta
>> >> >> vem da árvore morta para fazer o papel que irá utilizar."
>> >>
>> >> >> --
>> >> >> Você recebeu esta mensagem porque está inscrito na lista "flexdev"
>> >> >> Para enviar uma mensagem, envie um e-mail para
>> >> >> flexdev@googlegroups.com
>> >> >> Para sair da lista, envie um email em branco para
>> >> >> flexdev-unsubscr...@googlegroups.com
>> >> >> Mais opções estão disponíveis
>> >> >> emhttp://groups.google.com/group/flexdev
>> >
>> > --
>> > Você recebeu esta mensagem porque está inscrito na lista "flexdev"
>> > Para enviar uma mensagem, envie um e-mail para flexdev@googlegroups.com
>> > Para sair da lista, envie um email em branco para
>> > flexdev-unsubscr...@googlegroups.com
>> > Mais opções estão disponíveis em http://groups.google.com/group/flexdev
>>
>>
>>
>> --
>> []
>> Júlio César Ködel G.
>> "Você pode ficar sem comer durante 3 dias, sem beber durante 2 dias,
>> mas não pode ficar sem respirar por mais de 5 minutos.
>> Então, antes de imprimir isso, lembre-se que o oxigênio deste planeta
>> vem da árvore morta para fazer o papel que irá utilizar."
>>
>> --
>> Você recebeu esta mensagem porque está inscrito na lista "flexdev"
>> Para enviar uma mensagem, envie um e-mail para flexdev@googlegroups.com
>> Para sair da lista, envie um email em branco para
>> flexdev-unsubscr...@googlegroups.com
>> Mais opções estão disponíveis em http://groups.google.com/group/flexdev
>
> --
> Você recebeu esta mensagem porque está inscrito na lista "flexdev"
> Para enviar uma mensagem, envie um e-mail para flexdev@googlegroups.com
> Para sair da lista, envie um email em branco para
> flexdev-unsubscr...@googlegroups.com
> Mais opções estão disponíveis em http://groups.google.com/group/flexdev



-- 
[]
Júlio César Ködel G.
"Você pode ficar sem comer durante 3 dias, sem beber durante 2 dias,
mas não pode ficar sem respirar por mais de 5 minutos.
Então, antes de imprimir isso, lembre-se que o oxigênio deste planeta
vem da árvore morta para fazer o papel que irá utilizar."

-- 
Você recebeu esta mensagem porque está inscrito na lista "flexdev"
Para enviar uma mensagem, envie um e-mail para flexdev@googlegroups.com
Para sair da lista, envie um email em branco para 
flexdev-unsubscr...@googlegroups.com
Mais opções estão disponíveis em http://groups.google.com/group/flexdev

Responder a