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.
Código:
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.