- A
@@identityA função retorna a última identidade criada na mesma sessão. - O
scope_identity()A função retorna a última identidade criada na mesma sessão e no mesmo escopo. - O
ident_current(name)retorna a última identidade criada para uma tabela ou visualização específica em qualquer sessão. - A
identity()função não é usada para obter uma identidade, ela é usada para criar uma identidade em umselect...intoconsulta.
A sessão é a conexão com o banco de dados. O escopo é a consulta atual ou o procedimento armazenado atual.
Uma situação em que o
scope_identity() e a @@identity funções diferem, é se você tiver um gatilho na mesa. Se você tiver uma consulta que insere um registro, fazendo com que o gatilho insira outro registro em algum lugar, o scope_identity() A função retornará a identidade criada pela consulta, enquanto a função @@identity A função retornará a identidade criada pelo gatilho. Então, normalmente você usaria o
scope_identity() função.