SQL表分区之脚本分区

前面说的给表做表分区,现在有个问题,比如上面我们说的是按照20w为一个分割线,那些现在我们想把这个调整下怎么办?难道要把之前的分区函数和分区方案删了,重新新建分区函数和分区方案嘛?

当然,此方式肯定是ok 的,但是要注意的是只有没有分区表,或索引使用该分区方案时,才能对其删除

删除语法:

--删除分区方案语法
DROP PARTITION FUNCTION <分区函数>

--删除分区方案语法
DROP PARTITION  SCHEME<分区方案名称>
View Code

 

另外的方式就是直接在原有的分区函数进行修改ALTER  PARTITION FUNCTION

修改语法:

ALTER PARTITION FUNCTION partition_function_name()
{ 
    SPLIT RANGE ( boundary_value )
  | MERGE RANGE ( boundary_value ) 
} [ ; ]

--删除bgPartitionFun分区函数为200000的分区(0-400000即在一个分区)
ALTER  PARTITION FUNCTION [bgPartitionFun]() MERGE RANGE (N'200000')

--新增一个分区为100000
ALTER PARTITION SCHEME [bgPartitionSchema]
NEXT USED [ByIdGroup1]

ALTER  PARTITION FUNCTION [bgPartitionFun]() SPLIT RANGE (N'100000')
View Code

此处需要的注意的是,新增分区方案的时候,需要设置Next Used文件组,如果不指定就会出现以下问题:

警告: 分区方案 'XXXX' 没有任何下次使用的文件组。分区方案未更改。

 

posted @ 2018-04-03 14:40  HI_Hub_MI  阅读(264)  评论(0编辑  收藏  举报