Función scope_identity()

Qué hace la función scope_identity() de Sql_Server 2005?

La FAQ Función scope_identity() tiene

Pertenece a la categoría:

Pregunta
Qué hace la función scope_identity() de Sql_Server 2005?


Respuesta de Pol Salvat
Devuelve el último valor de identidad insertado en una columna de identidad en el mismo ámbito. Un ámbito es un módulo: un procedimiento almacenado, desencadenador, función o lote. Por tanto, dos instrucciones están en el mismo ámbito si se encuentran en el mismo procedimiento almacenado, función o lote.




SCOPE_IDENTITY, IDENT_CURRENT y @@IDENTITY son funciones parecidas ya que devuelven valores insertados en columnas de identidad.




IDENT_CURRENT no está limitado por el ámbito y la sesión; se limita a una tabla especificada. IDENT_CURRENT devuelve el valor generado para una tabla específica en cualquier sesión y cualquier ámbito.




SCOPE_IDENTITY y @@IDENTITY devuelven los últimos valores de identidad generados en una tabla en la sesión actual. No obstante, SCOPE_IDENTITY sólo devuelve los valores insertados en el ámbito actual; @@IDENTITY no se limita a un ámbito específico.

Complementar la respuestaComplementar la respuesta
Volver al árbol de categoríasVolver al árbol de categorías

Comentarios
Fue enviado 1 comentario a la faq
1 comentario revisado:
Por: Daedin
19/12/06
A efectos prácticos, es más seguro utilizar SCOPE_IDENTITY() cuando querramos obtener el identity de una tabla en que hacemos un INSERT, ya que si tubiera triggers que inserten en otras tablas con identidad, @@identity nos devolvería el de esas tablas, obteniendo cualquier valor menos el que necesitamos (lo sé, me ha pasado :D)

Volver al árbol de categoríasVolver al árbol de categorías
Alojados en el grupo