【发布时间】:2017-03-03 10:06:38
【问题描述】:
我的表具有 uniqueidentifier 类型的聚集主键并且它们不是顺序的,因此发生了很多物理排序。
我知道最好将复合主键与集群 int 和非集群唯一标识符组合使用,但数据库已经在生产中使用。
问题是如何更改对 PK 的约束以使用 NEWSEQUENTIALID() 作为默认值并且是集群主键。我假设我必须放弃并重新创建约束。我不是 dba,所以最好能提供带有语法的示例。
【问题讨论】:
-
其实用一个int标识列作为主键会更好。没有理由包含 guid 列,因为它在定义上是唯一的。
-
服务器端有理由将id用作guid,所以我宁愿不改变这个逻辑
标签: sql sql-server constraints