SQL SERVER 移除分区函数和分区方案

移除分区函数和分区方案

如果尝试删除一个绑定到既有表或索引的分区函数或分区方案,就会得到一个错误消息。也不能直接移除一个绑定到表的分区方案或分区函数(除非删除整个表,本技巧将会这么做)。如果开始是以堆方式创建表(没有聚集索引的表),然后创建一个聚集索引绑定到一个分区方案,那么可以使用CREATE INDEX DROP_EXISTING选项(参阅第5章)来重新创建索引而不引用分区方案。

使用下面的语法删除一个分区方案:

  1. DROP PARTITION SCHEME partition_scheme_name 

这个命令接受要删除的分区方案名作为参数。

使用下面的语法删除一个分区函数:

  1. DROP PARTITION FUNCTION partition_function_name 

同样,这个命令只接受要删除的分区函数名作为参数。

这个示例演示了如何删除一个分区函数和分区方案,假设在这种情况下可以删除源表(在正式应用下通常不能这样做):

  1. DROP TABLE Sales.WebSiteHitsHistory  
  2. DROP TABLE Sales.WebSiteHits  
  3.  
  4. -- 删除分区方案和分区函数  
  5. DROP PARTITION SCHEME HitDateRangeScheme  
  6. DROP PARTITION FUNCTION HitDateRange 

解析

这个示例演示了删除一个分区方案和分区函数。对于本例,我们需要在这之前先删除源表。

另外一种解决方案就是把所有的结果复制到一个外部表,删除表,删除分区方案和分区函数,然后重新命名把数据复制过去的那张表。如果你的目标只是把表变成一个分区,其实可以合并所有分区,并且保留分区方案和分区函数。只有一个分区的表在功能上和一个普通的未分区表一样。

posted @ 2010-11-22 09:53  jackyong  阅读(1224)  评论(0编辑  收藏  举报