はい。これは SQL Server 2008 エンタープライズの例です。
年別分割機能1:= Y < 2008, 2:= 2008, 3:= 2009, 4:= 2010, 5:= Y >= 2011
/* First create a partition function */
CREATE PARTITION FUNCTION myPFun (int)
AS RANGE RIGHT FOR VALUES (20080101, 20090101, 20100101, 20110101);
GO
範囲をファイル グループにマップするためのパーティション スキーム。この例では、すべてのパーティションを PRIMARY ファイル グループにマップします。
/* Then a partition scheme */
CREATE PARTITION SCHEME myPRng
AS PARTITION myPFun
ALL TO ( [PRIMARY] );
GO
そして、年ごとに分割されたファクト テーブル
/* Fact table partitioned by year */
CREATE TABLE factTbl (DateKey int, Value int)
ON myPRng (DateKey) ;
GO
同じ方法で分割されたステージング テーブル
/* Staging table partitioned the same way as the fact table */
CREATE TABLE stageTbl (DateKey int, Value int)
ON myPRng (DateKey) ;
GO
テストするデータ
/* Populate fact table (years 2008, 2009)*/
INSERT INTO factTbl
( DateKey, Value )
VALUES ( 20080205, 10 )
, ( 20080711, 25 )
, ( 20090525, 43 );
/* Populate staging table (year 2010) */
INSERT INTO stageTbl
( DateKey, Value )
VALUES ( 20100107, 10 );
そしてパーティションをステージング テーブルからファクト テーブルに切り替えます
/* From staging table to fact table */
ALTER TABLE stageTbl SWITCH PARTITION 4 TO factTbl PARTITION 4;
GO
テストする
SELECT * FROM factTbl
戻り値
DateKey Value
----------- -----------
20080205 10
20080711 25
20090525 43
20100107 10
詳細については、msdn の記事を参照してください。