Test venligst følgende SQL Server i stedet for trigger, som kontrollerer den første detaljetabel. Hvis der mangler data i Detaljer, indsætter den denne tabel. Som andet trin fortsætter den med indsættelse i færdighedstabellen
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
For flere eksempler på SQL Server i stedet for trigger henvises til givet eksempel.
Men læg venligst mærke til mine ord, jeg tror, det vil være et alternativt design at beholde færdigheder i en anden master-tabel. Og før vi indsætter detaljer, kontrollerer vi generelt, at masteren eksisterer eller ej. Så din kontrol generelt kan køre i modsat vej.Brugere indsætter generelt stamdata først. I dette tilfælde færdighedstabellens data. Så udfyldes detaljerne.