我的表具有uniqueidentifier类型的聚簇主键,并且它们不是顺序的,因此发生了大量的物理排序。
我知道最好将复合主键与clustered int和non clustered uniqueidentifier结合使用,但数据库已经在生产中使用。
问题是如何更改PK上的约束以使用NEWSEQUENTIALID()作为默认值并且是群集主键。我假设我必须删除并重新创建约束。我不是dba所以如果你能用语法提供例子,那将是最好的。
答案 0 :(得分:0)
我找到了我的问题的答案,我无法添加描述聚集PK的约束以及该列的默认值。但我可以用两个约束来做到这一点。
ALTER TABLE dbo.FooTable
ADD CONSTRAINT [PK_FooTableId] PRIMARY KEY CLUSTERED
(
[Id] ASC
)
ALTER TABLE dbo.FooTable
ADD CONSTRAINT [PK_FooTableId_Default] DEFAULT NEWSEQUENTIALID() for Id