Desde el sitio me encontré con las siguientes cosas:
SQL SERVER – @@IDENTITY vs SCOPE_IDENTITY() vs IDENT_CURRENT – Retrieve Last Inserted Identity of Record 25 de marzo de 2007 por pinaldave
SELECT @@ IDENTITY Devuelve el último valor de identidad producido en una conexión, sin tener en cuenta de la tabla que produjo el valor, e independientemente del alcance de la declaración que produjo el valor. @@ IDENTITY devolverá el último valor de identidad ingresado en una tabla en su sesión actual. Mientras que @@ IDENTITY está limitado a la sesión actual, no está limitado al alcance actual. Si tiene un desencadenante en una tabla que hace que se cree una identidad en otra tabla, obtendrá la identidad que se creó en último lugar, incluso si fue el desencadenador que lo creó.
SELECT SCOPE_IDENTITY() Devuelve el último valor de IDENTIDAD producido en una conexión y por una declaración en el mismo ámbito, independientemente de la tabla que produjo el valor. SCOPE_IDENTITY(), como @@ IDENTITY, devolverá el último valor de identidad creado en la sesión actual, pero también lo limitará a su alcance actual. En otras palabras, devolverá el último valor de identidad que creó explícitamente, en lugar de la identidad creada por un desencadenante o una función definida por el usuario.
SELECCIONAR IDENT_CURRENT ('tablename') Devuelve el último valor de IDENTIDAD producido en una tabla, independientemente de la conexión que creó el valor, e independientemente del alcance de la instrucción que produjo el valor. IDENT_CURRENT no está limitado por el alcance y la sesión; está limitado a una tabla especificada. IDENT_CURRENT devuelve el valor de identidad generado para una tabla específica en cualquier sesión y cualquier ámbito.
Esto ayudará si se le da algunos detalles de qué base de datos que está utilizando como técnicas varían. – Dhaust
Posible duplicado de [¿La mejor forma de obtener la identidad de la fila insertada?] (Http://stackoverflow.com/questions/42648/best-way-to-get-identity-of-inserted-row) – Michael