ALTER TABLE [SchemaName].[TableName] WITH CHECK ADD
CONSTRAINT [FK_TableName_TableName] FOREIGN KEY([Id])
REFERENCES [SchemaName].[TableName] ([Id])
Khóa ngoại này hoàn toàn dư thừa và vô nghĩa chỉ cần xóa nó. Nó không bao giờ có thể bị vi phạm vì một hàng khớp với chính nó để xác nhận ràng buộc.
Trong một bảng phân cấp các mối quan hệ sẽ là giữa hai cột khác nhau (ví dụ Id
và ParentId
)
Đối với lý do tại sao nó có thể đã được tạo ra khá nhiều khả năng thông qua việc sử dụng thiết kế trực quan nếu bạn kích chuột phải vào "Keys" nút trong đối tượng thám hiểm và chọn "New Foreign Key" sau đó đóng hộp thoại mà không xóa khóa nước ngoài tạo ra và sau đó thực hiện một số thay đổi khác trong thiết kế bảng mở và lưu nó sẽ tạo ra loại hạn chế dư thừa.
Nguồn
2012-11-11 12:16:23
Tôi nghĩ vậy. Tôi ngạc nhiên rằng nó thậm chí còn có thể. – HuBeZa