按分区号合并两个数据库表分区

时间:2012-10-20 05:21:43

标签: sql-server sql-server-2008 tsql

我使用以下函数在SQL Server中创建了四个分区。

CREATE PARTITION FUNCTION fnYearsRT(DateTime)
AS RANGE RIGHT FOR VALUES
('01/01/2005', '01/01/2006', '01/01/2007', '01/01/2008');

CREATE PARTITION SCHEME date_partscheme
 AS PARTITION fnYearsRT
 TO (Filegroup1, Filegroup2, Filegroup3, Filegroup4,Filegroup5)

CREATE TABLE Sales.ReturnsArchive
  (
     ReturnID  int  IDENTITY NOT NULL, 
     ProductID  int  NOT NULL, 
     CustomerID  int  NOT NULL, 
     ReturnDate  datetime  NOT NULL,  
     ReturnReason  char(20)  NULL  
  ) 
 ON date_partscheme (ReturnDate)

插入数据后,我有以下统计数据

Partition   COUNT
2       5151
3       19353
4       51237
5       45576

我想合并分区2和3,但我无法确定合并功能应该给出哪个范围。

1 个答案:

答案 0 :(得分:2)

你实际上有5个分区,而不是4个,第一个看起来是空的。要合并分区2和3,请使用以下代码:

ALTER PARTITION FUNCTION 
    MERGE RANGE('01/01/2006')

这将为您提供以下范围:

  1. 〜至'31 / 12/2004'
  2. '01 / 01/2005'至'31 / 12/2006'
  3. '01 / 01/2007'至'31 / 12/2007'
  4. '01 / 01/2008'到〜