- A
@@identity
A 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...into
consulta.
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.