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

SQL Server:Không thể tạo mối quan hệ

Khóa chính trong bảng Person có lẽ là một danh tính. Đây là trường số nguyên tự động tăng dần.

Bạn cần tạo khóa ngoại trong bảng địa chỉ kiểu int, không phải danh tính. Nó sẽ chứa các số nguyên tương ứng với bản ghi Người, nhưng bạn không muốn khóa ngoại tự động tăng. Đối với mỗi bản ghi trong bảng con (địa chỉ), bạn sẽ đặt một giá trị cụ thể cho khóa ngoại cho biết nó thuộc về bản ghi mẹ nào (Người).

Ví dụ:

INSERT person (firstname, lastname) VALUES ('John', 'Smith')

Thao tác này sẽ chèn bản ghi người mới và trường personid sẽ được điền tự động vì nó là trường IDENTITY.

Bây giờ để chèn một địa chỉ từ John Smith, bạn cần biết personid của anh ấy . Ví dụ:

-- Say, for example, personid of John Smith is 55
INSERT address (personid, street, city) VALUES (55, 'High Street', 'London')

Vì vậy, trong person bảng nhân cách được tạo tự động nhưng ở địa chỉ address bảng bạn chỉ định giá trị phù hợp với một người hiện có. Đó là toàn bộ điểm của khóa ngoại.

Nếu không có thêm thông tin về lược đồ của bạn, thật khó để đoán vấn đề.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. SQL SERVER:Nhận tổng số ngày giữa hai ngày

  2. Sử dụng chứng chỉ SQL từ cơ sở dữ liệu khác

  3. vấn đề truy vấn sql khi báo cáo

  4. Cách bật / tắt quyền truy cập dữ liệu trong SQL Server (Ví dụ T-SQL)

  5. Lấy Id của một hàng tôi đã cập nhật trong Máy chủ Sql