使用比文件组更多的分区来分区表错误

时间:2011-06-17 10:40:55

标签: sql-server sql-server-2008-r2

我正在尝试对数据库表进行分区,我已经正确地创建了文件组(我认为),我不得不添加一些额外的文件组,因为我遇到了与文件组相比的分区数量的错误(I我无法解决这个问题),我已经创建了一个没有问题的分区函数,但是当我尝试创建分区方案时,我收到以下错误:

  

Msg 7707,Level 16,State 1,Line 2   相关的分区功能   'PARTFN_INV_LINE_FACT'产生更多   分区比文件组   在计划中提到   'PARTSCH_INV_LINE_FACT'。

我错过了一步吗?

我是新手并且这样做是为了学习未来的任务,所以如果我没有提供足够的信息,请原谅。我已经包含了我在下面所做的一切。

必须在方案中明确输入所有文件组。

6 个答案:

答案 0 :(得分:7)

没有看到代码,我不能100%肯定,但我怀疑你遇到了我尝试重用当前分区函数和新分区方案时所遇到的确切问题。我的分区函数定义了16个范围值,但我的分区方案只定义了8个分区,导致您引用的错误相同。

在我的情况下,解决方案是简单地不尝试重用现有的分区函数,而是创建一个新的分区函数和分区方案,具有相同数量的范围值和分区,如下所示:

CREATE PARTITION FUNCTION partitionFunctionName(datetime) 如 范围左侧(价值范围)                        '20130228 23:59:59.997',
                       '20130331 23:59:59.997',
                       '20130430 23:59:59.997',
                       '20130531 23:59:59.997',
                       '20130630 23:59:59.997',
                       '20130731 23:59:59.997',
                       '20130831 23:59:59.997',
                       '20130930 23:59:59.997'
                       ) GO

CREATE PARTITION SCHEME [partitionSchemeName] 如 PARTITION partitionFunctionName TO    (        [PartitioningFileGroupName1]       [PartitioningFileGroupName2]       [PartitioningFileGroupName3]       [PartitioningFileGroupName4]       [PartitioningFileGroupName5]       [PartitioningFileGroupName6]       [PartitioningFileGroupName7]       [PartitioningFileGroupName8]       ,[主]    )

GO

我知道这是一个老问题,但也许这会帮助别人避免同样的问题!

答案 1 :(得分:5)

可能您忘记在分区方案中包含[PRIMARY]文件组。

答案 2 :(得分:1)

必须在方案中明确输入所有文件组。

答案 3 :(得分:1)

标准数量必须缺少许多文件组,分区函数。

答案 4 :(得分:1)

您是否提到了系统中可用的文件组?

您可以从查询中获取文件组列表:

SELECT name AS AvailableFilegroups
  FROM sys.filegroups
  WHERE type = 'FG' 

答案 5 :(得分:0)

您必须匹配文件组。

选择名称AS AvailableFilegroups 从sys.filegroups WHERE类型='FG'

查询结果应与方案相同。