sql >> Databasteknik >  >> RDS >> Sqlserver

Loopar du in Trigger?

Dina första problem är att du aldrig bör överväga att gå igenom en rekorduppsättning som ett förstahandsval. Det är nästan alltid fel val som det är här. Ditt nästa problem är att triggers bearbetar hela uppsättningen av poster, inte en i taget och utifrån din beskrivning slår jag vad om att du skrev det förutsatt att det skulle behandla en post i taget. Du behöver en uppsättningsbaserad process.

Förmodligen behöver du något liknande detta i din utlösare som skulle infoga alla länder i infogade som inte redan finns i landstabellen (detta förutsätter country_Id är en heltals identitetskolumn):

Insert country (country_name)
select country_name 
from inserted i
where not exists 
  (select * from country c 
   where c.country_name = i.country_name)

Du kan också använda en lagrad proc istället för en trigger för att infoga i de riktiga tabellerna från mellanställningstabellen.



  1. MySQL kumulativ summa ordning efter datum

  2. Uppdatera fråga med PDO och MySQL

  3. Hur kan jag få värden från en tabell till en annan via liknande värden?

  4. Vad är skillnaden mellan VARCHAR och CHAR?