ALTER TABLE [SchemaName].[TableName] WITH CHECK ADD
CONSTRAINT [FK_TableName_TableName] FOREIGN KEY([Id])
REFERENCES [SchemaName].[TableName] ([Id])
Khóa ngoại này là hoàn toàn thừa và chỉ cần xóa nó đi là được. 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 bảng phân cấp, mối quan hệ sẽ nằm 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á có thể thông qua việc sử dụng trình thiết kế trực quan nếu bạn nhấp chuột phải vào nút "Keys" trong trình khám phá đối tượng và chọn "New Foreign Key", sau đó đóng hộp thoại mà không xóa khóa ngoại đã tạo và sau đó thực hiện một số các thay đổi khác trong trình thiết kế bảng đã mở và lưu nó sẽ tạo ra loại ràng buộc dư thừa này.