Sqlserver
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Sqlserver

MS SQL TRÊN XÓA CASCADE nhiều khóa ngoại trỏ đến cùng một bảng?

Bạn sẽ phải triển khai điều này như một kích hoạt xóa INSTEAD OF trên thông tin chi tiết, để làm cho nó hoạt động. Một cái gì đó như:

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)

Thường xuyên có các thao tác xóa theo tầng và có nhiều khóa ngoại, bạn cần dành thời gian để tìm ra thứ tự "phân tầng" để việc xóa xảy ra ở đầu "cây" được chuyển thành công đến các bảng tham chiếu. Nhưng điều đó là không thể trong trường hợp này.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Làm cách nào để thoát khỏi một trích dẫn duy nhất trong SQL Server?

  2. Tại sao máy chủ sql lưu trữ các ký tự dấu chấm hỏi thay vì các ký tự tiếng Nhật trong các trường NVarchar?

  3. Chuyển đổi một ngày thành một múi giờ khác trong SQL Server

  4. Lấy tên ngày ngắn trong SQL Server (T-SQL)

  5. Đặt hàng Bằng cách sử dụng một tham số cho tên cột