sql >> Databasteknik >  >> RDS >> Sqlserver

SQL Server - INNAN INSERT Trigger

Vänligen testa att följa SQL Server istället för trigger som kontrollerar den första detaljtabellen. Om det saknas data i Detaljer infogar den den tabellenSom det andra steget fortsätter den med infogning i färdighetstabellen

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

För fler exempel på SQL Server istället för trigger hänvisa till givet exempel.

Men vänligen notera mina ord, jag tror att det kommer att vara en alternativ design för att behålla färdigheter i en annan mastertabell. Och innan vi infogar i detaljer kontrollerar vi i allmänhet att mastern finns eller inte. Så din kontroll i allmänhet kan köras i motsatt väg.Användare i allmänhet infogar stamdata först. I det här fallet färdighetstabelldata. Därefter fylls detaljerna i.




  1. Anpassade fält i Many2Many JoinTable

  2. FLOOR() Funktion i Oracle

  3. Hur kan jag VÄLJA rader med MAX(kolumnvärde), PARTITION efter en annan kolumn i MYSQL?

  4. hur man löser Allmänt fel:2014 Kan inte köra frågor medan andra obuffrade frågor är aktiva. använder PDO-anslutning