Pergunta

Eu tenho um procedimento em que eu estou inserindo registro em table.nad empregado recebendo empid usando @@ identidade? quando este procedimento será chamado por mais de um usuário ao mesmo tempo, pode haver possibilidade de que ele retorna a identidade de algum outro funcionário inserido no mesmo time.because não há bloqueio na identidade pelo sistema?

- Código --identity por coluna empid
inserir empregado (nome) valores ( 'sahil'); retorno @@ identidade

identidade é seguro para uso @@:

SQL Server 2005 ? para bloqueio na questão da identidade

Foi útil?

Solução

Você deve estar usando SCOPE_IDENTITY () em vez. No entanto, @@ IDENTITY refere-se à conexão atual para que outros usuários não irá afetá-lo, mas há outras questões a considerar.

Mais informações aqui .

Outras dicas

@@ identidade não é seguro para uso. Se a tabela tem um gatilho com uma inserção em uma tabela differnt com uma identidade que é o valor que será devolvido. Nunca usá-lo para obter o valor idnetity que acabou de inserir. Você pode pensar bem, eu não tenho um gatilho agora, mas você nunca sabe quando alguém pode ser adicionado e você pode ir um longo tempo antes de perceber que seus dados estão irremediavelmente confuso.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top