PDA

Ver la Versión Completa : ¿ Me puedo fiar de SCOPE_IDENTITY?


carlos7
30-10-2005, 11:19:31
Hola a todos;

Estoy escribiendo un procedimiento almacenado que inserta un registro de cabecera en una tabla T1 y varios registros de detalle en otra tabla T2. La tabla T1 tiene definida una clave primaria en un campo identidad que es por la que se enlaza con los registros de la tabla T2.

Realizo los siguientes pasos:

Insert into T1

Select SCOPE_IDENTITY

Inset into T2 (con el valor identidad que he obtenido)

Mi duda está en que pasa si se están ejecutando varias instancias del procedimiento a la vez (se trata de una aplicación en internet). ¿Puedo estar seguro de que SCOPE_IDENTITY me devuelve la identidad insertada en "su instancia" de procedimiento alamcenado y no en otras?

En caso contrario, ¿hay otra forma de hacer esta inserción maestro detalle?

Muchas gracias por adelantado...
Carlos.

lucasarts_18
30-10-2005, 16:03:13
Hola:

Este hilo (http://www.clubdelphi.com/foros/showthread.php?t=25808&highlight=SCOPE_IDENTITY) puede servirte..

Hasta Luego -

Xianto
30-10-2005, 23:14:02
Buenas, la verdad que nunca he utilizado el SCOPE_IDENTITY, no porque no lo conozca, sino porque el comando que utilizo, es tal vez más usado ó esta en más ejemplos.


Insert into T1 (campos....) values (valores...)

Insert into T2 (id_tabla_t1, campos....) values(@@identity, valores)


Si haces un insert en una tabla que tiene una clave principal establecida, el comando @@identity te dira cual es el último insertado.

El @@identity es un comando que va por la conexión, o sea que cuando inicias el procedimiento, hasta que termina, solo usa una unica conexión con la DB, asi que el @@identity sera el último ID que hayas insertado desde esa conexión, por lo cual si tienes multiples instancias del procedimiento en ejecución el resultado del @@identity sera distinto para cada una, nunca se equivoca... jejeje

Usalo sin miedo, yo tengo más de 10000 transacciones diarias de inserción y jamas se ha producido un fallo.

carlos7
31-10-2005, 17:42:52
Gracias a ambos. Lo utilizaré pues sin miedo...