- La
@@identity
La función devuelve la última identidad creada en la misma sesión. - La
scope_identity()
La función devuelve la última identidad creada en la misma sesión y el mismo ámbito. - El
ident_current(name)
devuelve la última identidad creada para una tabla o vista específica en cualquier sesión. - La
identity()
la función no se usa para obtener una identidad, se usa para crear una identidad en unselect...into
consulta.
La sesión es la conexión a la base de datos. El ámbito es la consulta actual o el procedimiento almacenado actual.
Una situación en la que scope_identity()
y el @@identity
las funciones difieren, es si tienes un gatillo sobre la mesa. Si tiene una consulta que inserta un registro, lo que hace que el disparador inserte otro registro en alguna parte, scope_identity()
devolverá la identidad creada por la consulta, mientras que @@identity
la función devolverá la identidad creada por el disparador.
Entonces, normalmente usaría scope_identity()
función.