分区主详细信息表



我使用SQL Server 2008 R2,并希望将主表和详细信息表一起分区。如何按主表中MasterTypeID字段对详细信息表进行分区。

我的分区函数是:

CREATE PARTITION FUNCTION MasterTypeFN(int)
AS 
RANGE LEFT FOR VALUES (1,2,3)

我的分区模式是:

CREATE PARTITION SCHEME MasterTypeScheme 
AS 
PARTITION MasterTypeFN 
TO ([FG1], [FG2], [FG3], [PRIMARY])

我的主表结构是:

CREATE TABLE [dbo].Master  
(
   [MasterID] [int] NOT NULL,
   [MasterTypeID] [int] NOT NULL,
   ...
) 
ON MasterTypeScheme (MasterTypeID)

我的详细信息表结构是:

CREATE TABLE [dbo].Detail
(
   [DetailID] [int] NOT NULL,
   [MasterID] [int] NOT NULL,
   ...
) 

我想对主分区进行分区详细信息表。换句话说,我想将主表记录和相关详细信息保存在一个文件组中。

您应该在详细信息表中定义MasterTypeID列并定义对其禁用更新此列的权限。 并在Master表上创建触发器MasterTypeID以将表中列Master与表中MasterTypeID列同步Detail

你想要的都是可能的。您需要将 MasterTypeID 的值复制到Detail表的每一行,以便将分区函数应用于Detail

创建一个新列Detail.MasterTypeID并相应地填充该列。在应用程序代码中或使用数据库中的触发器。

正确填充列后,您可以应用分区功能。

相关内容

  • 没有找到相关文章

最新更新