sql server 2005: é seguro usar @@ identidade?
-
22-08-2019 - |
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
SQL Server 2005 ? para bloqueio na questão da identidade
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.