错误信息:
'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]) --分区方案 (分区列),其实也就变动了这么一点点