Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

MS SQL ON DELETE CASCADE множество външни ключове, сочещи към една и съща таблица?

Ще трябва да приложите това като тригер ВМЕСТО изтриване на прозрения, за да го накарате да работи. Нещо като:

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)

Често при каскадни изтривания и много външни ключове, трябва да отделите време, за да изработите "каскаден" ред, така че изтриването, което се случва в горната част на "дървото", да бъде успешно каскадно към рефериращи таблици. Но това не е възможно в този случай.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как SCHEMA_ID() работи в SQL Server

  2. Вземете подниз в SQL Server

  3. Как да вмъкнете стойност в колона за идентичност ръчно в таблица на SQL Server - SQL Server / T-SQL урок, част 41

  4. Как работи функцията DIFFERENCE() на SQL Server

  5. Симулация на CONNECT BY PRIOR на Oracle в SQL Server