Sqlserver
 sql >> Database >  >> RDS >> Sqlserver

SQL Server - PRIMA DI INSERIRE Trigger

Si prega di testare seguendo SQL Server invece di Trigger che controlla la prima tabella dei dettagli. Nel caso in cui ci siano dati mancanti in Dettagli, inserisce quella tabella Come secondo passaggio, continua con l'inserimento nella tabella delle abilità

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

Per ulteriori esempi su SQL Server invece di trigger si prega di fare riferimento all'esempio fornito.

Ma per favore nota le mie parole, penso che sarà un design alternativo per mantenere le abilità in una tabella master diversa. E prima di inserire i dettagli, in generale controlliamo che il master esista o meno. Quindi il tuo controllo in generale potrebbe essere in esecuzione nel modo opposto. Gli utenti in genere inseriscono prima i dati anagrafici. In questo caso i dati della tabella Skills. Quindi vengono popolati i dettagli.