sql >> Database >  >> RDS >> Sqlserver

SQL Server - VOORDAT Trigger INSERT

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.




  1. Een JSON-dataset weergeven als een tabel met Node.js en Express

  2. De juiste manier om toegang te krijgen tot de laatste rij voor elke individuele identifier?

  3. Eén externe sleutel met tabel met 2 referenties

  4. Uitzondering voor weblogic-implementatie:PaddingException:Kan de opvulling niet uitvoeren:ongeldige padbyte