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