Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

MS SQL ON DELETE CASCADE wiele kluczy obcych wskazujących na tę samą tabelę?

Musisz zaimplementować to jako wyzwalacz usuwania INSTEAD OF dla statystyk, aby zadziałał. Coś takiego:

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)

Często przy usuwaniu kaskadowym i wielu kluczach obcych trzeba poświęcić czas na wypracowanie „kaskadowej” kolejności, tak aby usunięcie, które następuje na szczycie „drzewa”, zostało pomyślnie przeniesione do tabel odniesienia. Ale w tym przypadku nie jest to możliwe.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Skalarne wstawianie UDF w SQL Server 2019

  2. Jak zaszyfrować widok w SQL Server

  3. SQL Server 2014:natywne szyfrowanie kopii zapasowych

  4. Porównanie ciągów SQL, większe niż i mniejsze niż operatory

  5. Uzyskaj wartości graniczne dla tabeli partycjonowanej w programie SQL Server (T-SQL)