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

Hiểu các quy tắc cập nhật và xóa các mối quan hệ trong SSMS 2008

Khóa ngoại xác định mối quan hệ cha - con giữa hai bảng. Khóa chính trong bảng mẹ là khóa ngoại trong tối đa n hàng của bảng con.

Bây giờ nếu khóa chính đó trong bảng mẹ được CẬP NHẬT, thì QUY TẮC CẬP NHẬT sẽ bắt đầu. Tất cả các hàng con cũng được cập nhật, được đặt thành NULL hoặc bất kỳ thứ gì. Tuy nhiên, phương pháp hay nhất là có khóa chính KHÔNG BAO GIỜ thay đổi (ID cố định hoặc thứ gì đó), vì vậy đó là quy tắc ít quan trọng hơn.

Điều quan trọng hơn là quy tắc XÓA - điều gì sẽ xảy ra nếu hàng mẹ bị xóa (ví dụ:Đơn hàng bị xóa)? Bạn cũng có thể xóa tất cả các hàng con (tất cả các mục hàng Đặt hàng) bằng CASCADE DELETE hoặc bạn có thể đặt khóa ngoại của chúng thành NULL (chúng không còn giá trị gốc nữa) - điều đó hoàn toàn tùy thuộc vào kịch bản cụ thể của bạn.

Trong trường hợp Dòng đặt hàng / đơn hàng, có thể hoàn toàn hữu ích nếu xóa các dòng đơn hàng khi đơn hàng hoàn chỉnh bị xóa, nhưng bạn có thể không muốn xóa một sản phẩm, chỉ vì một đơn hàng tham chiếu đến nó đã bị xóa - không có một câu trả lời ĐÚNG duy nhất - nó phụ thuộc vào tình huống và ứng dụng của bạn.

Marc



  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 tròn số thập phân trong SQL Server 2008

  2. SQL Server 2008 R2 - Quần đảo và khoảng cách

  3. Quyền EXECUTE bị từ chối - 'aspnet_Roles_RoleExists'

  4. Làm thế nào để viết một truy vấn bằng cách sử dụng tự nối trên một bảng có dữ liệu lớn?

  5. Ghi đè các hàng bị ảnh hưởng trong SQL Server bằng ExecuteNonQuery?