SQL Server:将聚簇主索引更改为非群集

时间:2009-09-07 08:05:02

标签: sql-server tsql indexing

如何将主聚簇索引更改为非固定索引。 (作为“辅助”表我想使用“header”表的外键列的clustured index。)

这对我不起作用(错误似乎合理:)

DROP INDEX ClientUsers.PK_ClientUsers
CREATE UNIQUE CLUSTERED INDEX IDX_ClientUsers_Id ON ClientUsers(Id)

Msg 3723, Level 16, State 4, Line 7
An explicit DROP INDEX is not allowed on index 'ClientUsers.PK_ClientUsers'. 
It is being used for PRIMARY KEY constraint enforcement.

2 个答案:

答案 0 :(得分:4)

我认为你必须:

  1. 放弃FK
  2. 放下PK
  3. 删除聚集索引
  4. 重新创建PK
  5. 重新创建FK
  6. 在FK列上重新创建聚簇索引
  7. 然后选择在PK列上创建一个secondry索引

答案 1 :(得分:1)

您是否尝试过删除表上的PRIMARY KEY约束 - 然后删除索引 - 然后重新添加两者?

ALTER TABLE table_name DROP primary key