我想为相关产品制作一张桌子,所以产品会有很多关系。我想确保产品与自己没有关系。
我的表格如下:
ProductID int
RelatedToProductID int
Active bit
并且具有以下值:
productID RelatedToProductID Active
1 2 1
1 3 1
2 1 1
2 2 1
但是我想排除像上一个关系,如果产品与自身有关系。
有谁知道如何在ms sql中实现这一点?
答案 0 :(得分:4)
您可以使用check
约束来阻止自我关系:
alter table YourTable
add constraint CHK_YourTable_NoSelfRelation
check (productID <> RelatedToProductID)
答案 1 :(得分:1)
您可以在列(productID,RelatedToProductID)
上添加UNIQUE约束alter table YourTable add UNIQUE(productID,RelatedToProductID)
答案 2 :(得分:-1)
来自MSDN:
℃。创建唯一的非聚集索引
以下示例在表的列上创建唯一的非聚簇索引。索引将强制插入列中的数据的唯一性。
查询:
CREATE UNIQUE INDEX AK_ProductId_RelatedToProductId
ON table (ProductId, RelatedToProductId);
答案 3 :(得分:-2)
Select ... From Table Where productId <> RelatedToProductId