更改聚簇索引而不触及主键

时间:2018-03-08 15:56:40

标签: sql sql-server

我们有一个现有的数据库,我们希望将聚集索引更改为一个独特的,单调增加的字段(因为它应该从一开始就是这样),但我们不想更改主键,因为有数据引用此主键。

我们添加了一个新列SequentialId并用数据填充它,作为我们的新聚集索引。

但是我们如何改变聚集索引呢?如果可能,我们要么替换现有的聚簇索引,要么将SequentialId添加到当前索引作为第一列。

我们如何解决这个问题?看来我们不能在不删除主键的情况下更改聚簇索引(我们不能这样做)。

1 个答案:

答案 0 :(得分:1)

使用ALTER TABLE命令删除PRIMARY KEY 约束,这与删除强制执行CLUSTERED INDEX约束的PRIMARY KEY不同,并使用其他列重新创建

ALTER TABLE <Table_Name>
DROP CONSTRAINT <constraint_name>

ALTER TABLE <Table_Name>
ADD CONSTRAINT <constraint_name> PRIMARY KEY (<Column1>,<Column2>)