2013-03-14 86 views
0

我有一张表,我打算通过可空列进行分区。SQL Server 2012 - 表分区 - 可为空列

这似乎工作得很好,除了主键。我得到一个错误:

Partition columns for a unique index must be a subset of the index key

  1. 创建一个不同的文件组主键。这不起作用,因为它删除了分区。

  2. 一起跳过主键并创建一个聚集索引(非唯一)。这不会完全正确,因为我需要一个主键。

任何想法,我如何可以获得分区表的主键在分区列可以为空?如果没有,我会接受有关如何以另一种方式处理问题的建议。

在此先感谢。

回答

0

不知道什么阻止了你。您可以在您的唯一列上创建PK,并使您的分区列可以为空。只是不要仅在PK列上创建唯一的群集索引。当您需要创建唯一的群集索引时,请将PK列和分区列一起添加。

+2

请注意,您可以为空的分区列,取决于如何定义范围,所有null值都可以转到您的最左侧分区,然后何时滑动窗口您的第一个分区不再为空,并且合并非空分区可能需要很长时间,你没有想到。 – ljh 2013-03-14 04:41:54