'ALTER TABLE SWITCH' 语句失败。表'MGXXX.dbo.user_XXX' 已分区,但 索引'ix_user_XXX_user_id' 未分区。

问题描述:

今天在做分区切换的时候把旧log数据切到clear表,遇到了这个问题,顺便做下笔记记录一下解决方法

'ALTER TABLE SWITCH' 语句失败。表'MGXXX.dbo.user_XXX' 已分区,但 索引'ix_user_XXX_user_id' 未分区。

 

解决方法:

源表的分区以及目标表或分区必须在同一个文件组中,对应的索引或索引分区也必须在同一个文件组中。

我检查了一下报错的索引,果然是文件组是[PRIMARY],分区表是用的分区文件组

重建分区方案索引,把原来的索引删除,再切分区就可以了

#分区方案,非聚集索引
CREATE  NONCLUSTERED INDEX [ix_user_XXX_user_id] ON [dbo].[user_XXX]
(
    user_id asc
)WITH (online=on) ON [ps_user_XXX]([ctime])
GO
posted @ 2019-06-05 17:30  Tse先生  阅读(759)  评论(0编辑  收藏  举报