将主键添加到具有现有聚簇索引的表

Sté*_*ane 5 primary-key alter clustered-index sql-server-2008

我必须使用数据库来进行报告数据库非常大:416 055 104行每行非常轻,但只是布尔值和int id.

每行由3列标识,但令我惊讶的是,它上面没有主键.仅具有唯一约束的聚簇索引.

所以知道,我有两个问题.

  1. 这有什么好的理由吗?
  2. 有什么办法可以把它变成主键.

关于问题2

创建新主键还会创建要与之关联的非聚集索引(已存在已存在的聚簇索引).
不是我想要的.我想保留相同的索引,但也使它成为主键.

  • 可能吗?
  • 再次创建整个索引会更快吗?(希望如此)
  • 可能是什么后果?(锁定?崩溃?数据损坏?)

nvo*_*gel 2

不可空列上的 PRIMARY KEY 和 UNIQUE 约束之间几乎没有区别。因此,如果相关列不可为空,那么我建议您什么都不做。将候选键设为主键的主要原因是,如果您有某些软件(例如数据建模工具或其他开发工具)期望使用 PRIMARY KEY 约束来标识该键。