Khi bạn tạo ràng buộc khóa ngoài trong bảng và bạn tạo tập lệnh trong MS SQL Management Studio, có vẻ như thế này.Ràng buộc kiểm tra khóa ngoài T-SQL
ALTER TABLE T1 WITH CHECK ADD CONSTRAINT FK_T1 FOREIGN KEY(project_id)
REFERENCES T2 (project_id)
GO
ALTER TABLE T1 CHECK CONSTRAINT FK_T1
GO
Điều tôi không hiểu là mục đích thứ hai thay đổi với ràng buộc kiểm tra là gì. Không tạo ra ràng buộc FK đủ? Bạn có phải thêm ràng buộc kiểm tra để đảm bảo tính toàn vẹn tham chiếu không?
Một câu hỏi khác: câu hỏi sẽ trông như thế nào khi bạn muốn viết trực tiếp trong định nghĩa cột?
CREATE TABLE T1 (
my_column INT NOT NULL CONSTRAINT FK_T1 REFERENCES T2(my_column)
)
Không đủ sao?
ok .. và nó sẽ không được kích hoạt theo mặc định? Bởi vì trong quan điểm của tôi .. nếu tôi viết một ràng buộc khi tạo một bảng, nó sẽ được kích hoạt theo mặc định. –
Tôi muốn nhận được câu trả lời cho câu hỏi thứ hai của bạn, tất cả tài liệu tôi đọc nói rằng ràng buộc fk sẽ thực thi quy tắc trong các cột hiện tại theo mặc định, vì vậy tôi tin rằng câu lệnh thứ hai là không cần thiết. – Ernesto