热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

解决分区表归档(switch)失败

错误信息:ALTERTABLESWITCH语句失败。表dbName.dbo.tableName已分区,但索引IX_indexName未分区。网上找了很多

错误信息:

'ALTER TABLE SWITCH' 语句失败。表'dbName.dbo.tableName' 已分区,但 索引'IX_indexName' 未分区。

网上找了很多都解决不了,摸索一番总算搞定了。


解决方法:

先删除这个表上除主键之外的所有索引, 然后添加索引(基于分区方案上的分区列)


脚本:

IF EXISTS(SELECT * FROM sys.indexes AS i WHERE i.[object_id]=OBJECT_ID('[dbo].[tableName]') AND NAME NOT LIKE 'PK_%')
BEGINDECLARE @sql NVARCHAR(MAX)SET @sql=''SELECT @sql=@sql+'drop index '+NAME+' on [dbo].[tableName];' FROM sys.indexes AS i WHERE i.[object_id]=OBJECT_ID('[dbo].[tableName]') AND NAME NOT LIKE 'PK_%'SET @sql=REPLACE(@sql, ';', '
')PRINT @sqlEXEC (@sql)
END
--1.只写一个,其它的类似
CREATE NONCLUSTERED INDEX [IX_indexName] ON [dbo].[tableName]
([columnName] ASC
) ON [partition_scheme]([partitionColumn]) --分区方案 (分区列),其实也就变动了这么一点点






推荐阅读
author-avatar
菲菲鱼2009
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有