我正在尝试在其中一个表上实现切换分区,并确保分区函数,方案,文件组工作正常。但是当我运行以下命令时,我收到文件组错误。有人可以分享你对此的看法。
命令: -
ALTER TABLE XYZ SWITCH PARTITION 5 TO ABC PARTITION 5;
错误: -
ALTER TABLE SWITCH语句失败。表'XYZ'在文件组'PRIMARY'中,表'ABC'的分区5在文件组'FG_5'中。
答案 0 :(得分:0)
可能会在现有表上创建某些群集索引。因此,在可能不同的表上创建集群索引时会提到文件组。或者如果您可以删除ABC表并再次创建并尝试查询。
查询以检查表和索引名称的文件组。
select f.name,o.name,i.name from sys.indexes i inner join sys.filegroups f on i.data_space_id=f.data_space_id
inner join sys.all_objects o on o.object_id= i.object_id
where o.name in ('ABC','XYZ')
我不会说这是解决方案,但这有助于解决问题。
答案 1 :(得分:0)
错误表示源表和目标表不是存储对齐的。运行以下查询以确保源和目标文件组在表和索引中都相同:
StringBuilder sb = new StringBuilder();
sb.append("valueOne"); // adresse One
sb.append("valueTwo"); // adresse One
答案 2 :(得分:-1)
检查您的分区方案。两个表应位于同一文件组中。您应该在分区方案中包含PRIMARY或将SOURCE表移动到目标表将使用的目标FILEGROUPS。