refs:
https://www.cnblogs.com/knowledgesea/p/3696912.html
分区的拆分与合并以及数据移动
1.拆分分区
在分区函数中新增一个边界值,即可将一个分区变为2个。
--分区拆分 alter partition function bgPartitionFun() split range(N'1500000') --将第二个分区拆为2个分区
注意:如果分区函数已经指定了分区方案,则分区数需要和分区方案中指定的文件组个数保持对应一致。
2.合并分区
与拆分分区相反,去除一个边界值即可。
--合并分区 alter partition function bgPartitionFun() merge range(N'1500000') --将第二第三分区合并
3.分区中的数据移动
你或许会遇到这样的需求,将普通表数据复制到分区表中,或者将分区表中的数据复制到普通表中。
那么移动数据这两个表,则必须满足下面的要求。
- 字段数量相同,对应位置的字段相同
- 相同位置的字段要有相同的属性,相同的类型。
- 两个表在一个文件组中
1.创建表时指定文件组
--创建表 create table <表名> ( <列定义> )on <文件组名>
2.从分区表中复制数据到普通表
--将bigorder分区表中的第一分区数据复制到普通表中 alter table bigorder switch partition 1 to <普通表名>
3.从普通标中复制数据到分区表中
这里要注意的是要先将分区表中的索引删除,即便普通表中存在跟分区表中相同的索引。
--将普通表中的数据复制到bigorder分区表中的第一分区 alter table <普通表名> switch to bigorder partition 1