Pruebe siguiendo SQL Server en lugar de Trigger, que verifica la primera tabla de detalles. En caso de que falten datos en Detalles, inserta esa tabla. Como segundo paso, continúa con la inserción en la tabla de Habilidades
CREATE Trigger MySkillsInsteadOfInsert on dbo.MySkills Instead Of Insert
AS
Begin
insert into MySkills_details (
EmpId -- and other relevant columns
)
select i.EmpId -- and other relevant columns
from inserted i
left join MySkills_details d on i.EmpId = d.EmpId
where d.EmpId is null
Insert Into MySkills(EmpId) -- and other relevant columns
Select EmpId -- and other relevant columns
From inserted i;
End
Para obtener más muestras en SQL Servidor en lugar de disparador por favor refiérase al ejemplo dado.
Pero tenga en cuenta mis palabras, creo que será un diseño alternativo para mantener las habilidades en una tabla maestra diferente. Y antes de insertar en los detalles, en general verificamos que el maestro exista o no. Por lo tanto, su control en general podría estar ejecutándose en el manera opuesta. Los usuarios en general insertan datos maestros primero. En este caso, los datos de la tabla Habilidades. Luego se completan los detalles.