Bitte testen Sie den folgenden SQL Server anstelle von Trigger, der die erste Detailtabelle überprüft. Falls Daten in den Details fehlen, fügt er diese Tabelle ein. Im zweiten Schritt wird mit dem Einfügen in die Skills-Tabelle fortgefahren
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
Weitere Beispiele finden Sie unter SQL Server statt Trigger beziehen Sie sich bitte auf das angegebene Beispiel.
Aber beachten Sie bitte meine Worte, ich denke, es wird ein alternatives Design sein, Fähigkeiten in einer anderen Master-Tabelle zu speichern. Und bevor wir Details einfügen, überprüfen wir im Allgemeinen, ob der Master existiert oder nicht umgekehrt. Benutzer geben im Allgemeinen zuerst Stammdaten ein. In diesem Fall die Daten der Skills-Tabelle. Dann werden die Details ausgefüllt.