sql >> Base de Datos >  >> RDS >> Sqlserver

@@IDENTITY, SCOPE_IDENTITY(), OUTPUT y otros métodos para recuperar la última identidad

Depende de lo que estés tratando de hacer...

@@IDENTIDAD

Devuelve el último valor de IDENTIDAD producido en una conexión, independientemente de la tabla que produjo el valor y del alcance de la declaración que produjo el valor.@@IDENTIDAD devolverá el último valor de identidad ingresado en una tabla en su sesión actual. @@IDENTITY se limita a la sesión actual y no se limita al ámbito actual. Por ejemplo, si tiene un activador 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 activador el que la creó.

ALCANCE_IDENTIDAD()

Devuelve el último valor de IDENTIDAD producido en una conexión y por una instrucción en el mismo ámbito, independientemente de la tabla que generó el valor. SCOPE_IDENTITY() es similar a @@IDENTITY, pero también limitará el valor a su ámbito actual. En otras palabras, devolverá el último valor de identidad que creó explícitamente, en lugar de cualquier identidad creada por un activador o una función definida por el usuario.

IDENT_ACTUAL()

Devuelve el último valor de IDENTIDAD generado en una tabla, independientemente de la conexión y el alcance de la declaración que generó el valor. IDENT_CURRENT está limitado a una tabla específica, pero no por conexión o ámbito.