主键没有表中的任何索引?

时间:2012-09-04 07:19:29

标签: sql-server sql-server-2008

我只是想知道我们可以在sql server中的表上创建一个主键而不需要任何类型的索引吗?

3 个答案:

答案 0 :(得分:11)

没有。作为实现详细信息,SQL Server使用索引维护主键。你不能阻止它这样做。主键:

  • 确保不存在重复的键值
  • 允许识别/访问各个行

SQL Server已经有提供这些功能的机制 - 唯一索引 - 因此它使用这些功能来强制执行约束。

答案 1 :(得分:0)

实际上,索引函数的方式与遍历书籍的方式相同。除非有页码及其与主题的关系,否则无法转到特定页面或主题。行的“分页”(排序)由SQL Server中的Clustered Index物理完成。如果表中没有PK,则可以在任何唯一键限定列上添加聚簇索引。由于表上不能有多个聚簇索引,并且所有其他非聚簇索引都依赖于聚簇索引进行搜索/遍历,因此无法在没有聚簇索引的情况下创建列PK。

答案 2 :(得分:-1)

您可以通过在NONCLUSTERED字词后面添加关键字primary key来创建一个主键不是聚集索引的表。