Tabla temporal
DECLARE @Temp TABLE
(
Id int,
Nombre varchar(50)
);
Inserción Batch con OUTPUT (inserted) INTO
INSERT INTO Personas(Nombre)
OUTPUT inserted.Id, inserted.Nombre
INTO @Temp
VALUES('Juan'),('Pedro'),('Jaime'),('Carlos');
INSERT INTO Mascotas(Nombre, PersonaId)
SELECT 'Mascota de ' + Nombre, Id
FROM @Temp;
https://pelaez87.wordpress.com/2014/10/28/inserciones-anidadas-con-autonumericos/