Test de volgende SQL Server in plaats van Trigger die de eerste detailtabel controleert. Als er gegevens ontbreken in Details, wordt die tabel ingevoegd. Als tweede stap gaat het verder met het invoegen in de vaardighedentabel
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
Voor meer voorbeelden op SQL Server in plaats van trigger raadpleeg het gegeven voorbeeld.
Maar let op mijn woorden, ik denk dat het een alternatief ontwerp zal zijn om vaardigheden in een andere hoofdtabel te houden. En voordat we details invoegen, controleren we in het algemeen of de master bestaat of niet. tegenovergestelde manier. Gebruikers in het algemeen voeren eerst stamgegevens in. In dit geval worden de gegevens van de tabel Vaardigheden ingevuld. Daarna worden de details ingevuld.