Veuillez tester le serveur SQL suivant au lieu du déclencheur qui vérifie la première table de détails. Dans le cas où il manque des données dans les détails, il insère cette table. Dans la deuxième étape, il continue avec l'insertion dans la table des compétences
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
Pour plus d'exemples sur SQL Serveur au lieu de déclencheur veuillez vous référer à l'exemple donné.
Mais s'il vous plaît notez mes mots, je pense que ce sera une conception alternative pour garder les compétences dans une table maître différente.Et avant d'insérer dans les détails, en général, nous vérifions que le maître existe ou non.Ainsi, votre contrôle en général pourrait être en cours d'exécution dans le en sens inverse. Les utilisateurs insèrent généralement les données de base en premier. Dans ce cas, les données du tableau des compétences. Ensuite, les détails sont renseignés.