sql >> Databáze >  >> RDS >> Sqlserver

MS SQL ON DELETE CASCADE více cizích klíčů ukazujících na stejnou tabulku?

Aby to fungovalo, budete to muset implementovat jako spouštěč smazání na statistikách MÍSTO mazání. Něco jako:

create trigger T_Insights_D
on Insights
instead of delete
as
    set nocount on
    delete from broader_insights_insights
    where insight_id in (select ID from deleted) or
    broader_insight_id in (select ID from deleted)

    delete from Insights where ID in (select ID from deleted)

Při kaskádovém mazání a spoustě cizích klíčů musíte často věnovat čas vypracování „kaskádového“ pořadí, aby bylo mazání, ke kterému dojde v horní části „stromu“, úspěšně kaskádováno do referenčních tabulek. Ale to v tomto případě není možné.




  1. Optimalizační prahy – seskupování a agregace dat, část 2

  2. Povolení SSL nebo TLS v Oracle Apps R12

  3. Implementace Optimistic Locking v Oracle

  4. Typy kurzoru SQL Server - Dynamický kurzor | Kurz SQL Server / Kurz TSQL