使用主键创建唯一的SQL表约束

时间:2016-12-23 16:11:50

标签: sql-server indexing unique-constraint

我们正在尝试对SQL Server中的某些数据表强制执行唯一的表约束,我已经开始工作但是我遇到了一些问题。我想让它按主键排序,但是如果我在索引键中包含它,它就不再强制执行唯一性,因为它显然将始终具有唯一的ID,因为它是主键。

如果我从索引键中删除ID,它会按原样运行,但它不再按主键排序,这就是我想要的。它按另一个列排序。

如何在约束中包含主键,以便我可以使用它进行排序,但在检查表约束的唯一性时要忽略它(即,如果所有其他的,它仍然不允许写入新记录信息与ID不同?

更新:如何处理表中列数多于可以放入索引的情况?我可以不在这些中强制执行重复的条目吗?

1 个答案:

答案 0 :(得分:0)

基于Set theory和Predicate逻辑构建Relational数据库。根据Set理论,A {1,2,3}和A之间的集合没有区别。 B {2,3,1}。  所以这就是在任何 RDBMS 中无法保证结果将按特定顺序排列的原因。

但是当你明确地在SELECT语句中提供ORDER BY时,你会得到它们。

最好先在前端或在查询中添加Order By子句。