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

Sự cố khóa ngoại với nhiều db trong một giao dịch

Chà, Id các cột không phải là "chìa khóa" có ý nghĩa và chúng sẽ đưa bạn đi khắp nơi. Chúng được cho là vô nghĩa, là định danh vật lý, và bạn có ý nghĩa gắn liền với chúng. Khi bạn yêu cầu Id giống nhau tồn tại trong cơ sở dữ liệu khác.

Bạn đã giải quyết vi phạm FK chưa? Hầu hết có thể bạn có một Id hoàn toàn khác cho hàng DB1, trong DB2; và chắc chắn khác Id .

Bạn cần phải nhất quán không chỉ định một Id và để máy chủ điền vào hoặc luôn luôn chỉ định một Id giá trị, trong cả hai cơ sở dữ liệu.

Vấn đề thứ hai là bạn không thích giao dịch. Các giao dịch đa db không có vấn đề gì cả. Vì vậy, hãy quên Id , những gì nó chứa và sử dụng các khóa thực cho bảng, trong cả hai Dbs. Các ids sẽ khác, nhưng ai quan tâm (điều đó có nghĩa là giải phóng nhu cầu gắn ý nghĩa với từ định danh vô nghĩa).



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Phím tắt để sửa đổi thủ tục được lưu trữ trong ssms

  2. MS SQL2005 Truy vấn / Kết quả Proc được Lưu trữ Thành Văn bản bằng SqlCommand hoặc bất kỳ phương pháp nào khác

  3. 7 cách trả về tất cả các bảng có khóa ngoại trong SQL Server

  4. SQL kết hợp với truy vấn con SQL (Hiệu suất)?

  5. Bộ xử lý Intel được đề xuất cho SQL Server 2014 - tháng 3 năm 2015