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,
   ...
) 

マスターパーティションに関して、PartitioningDetailテーブルを作成したいと思います。つまり、マスターテーブルレコードと関連する詳細を1つのファイルグループに保存したいと思います。

4

2 に答える 2

2

MasterTypeID詳細テーブルで列を定義し、この列の更新を無効にするための権限を定義する必要があります。テーブルにトリガーを作成して、テーブルの列をテーブルの列Masterと同期します。MasterTypeIDMasterMasterTypeIDDetail

于 2012-09-02T05:29:52.057 に答える
1

あなたが望むことは可能です。の値をテーブルMasterTypeIDの各行にコピーして、パーティション関数をに適用できるようにする必要があります。DetailDetail

新しい列Detail.MasterTypeIDを作成し、その列に適切に入力します。アプリケーションコードで、またはデータベースでトリガーを使用します。

列が正しく入力されたら、パーティション関数を適用できます。

于 2012-08-29T18:53:48.187 に答える