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

khóa ngoại trên bảng từ cơ sở dữ liệu khác nhau

Tôi sẽ tránh làm điều này nếu có thể - bạn có thể giữ cả hai bảng trong một cơ sở dữ liệu và sử dụng FK không?

Bảng cha và bảng con nằm trong các cơ sở dữ liệu khác nhau.

Mặc dù bạn không thể sử dụng khóa ngoại trong trường hợp này, nhưng vẫn có cách giải quyết - bạn có thể sử dụng trình kích hoạt hoặc UDF được bao bọc trong các ràng buộc kiểm tra. Dù bằng cách nào, tính toàn vẹn dữ liệu của bạn không hoàn toàn kín nước:nếu cơ sở dữ liệu với bảng mẹ của bạn gặp sự cố và bạn khôi phục nó từ bản sao lưu, bạn có thể dễ dàng kết thúc với trẻ mồ côi.

Mối quan hệ giữa cha mẹ và con cái được thực thi bởi các trigger.

Có một số tình huống khi trình kích hoạt không kích hoạt, chẳng hạn như:

· Một bảng bị bỏ.

· Một bảng bị cắt ngắn.

· Cài đặt cho trình kích hoạt lồng nhau và / hoặc đệ quy ngăn trình kích hoạt kích hoạt.

Ngoài ra, một trình kích hoạt có thể không chính xác. Dù bằng cách nào, bạn có thể kết thúc với trẻ mồ côi trong cơ sở dữ liệu của mình.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Các xu hướng trong năm 2020 mà các DBA nên biết

  2. Mảng lưu trữ trong SQL Server 2008

  3. Làm cách nào để xóa các hàng trùng lặp trong bảng

  4. Trong MS SQL Server, có cách nào để tăng nguyên tử một cột đang được sử dụng làm bộ đếm không?

  5. SQL Nhận lần xuất hiện cuối cùng của trường đối với mỗi hàng