6

我使用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,
   ...
) 

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

4

2 回答 2

2

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

于 2012-09-02T05:29:52.057 回答
1

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

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

正确填充列后,您可以应用分区函数。

于 2012-08-29T18:53:48.187 回答