あなたのコードでT-SQLを使用しても問題がないとわからない場合は、例を探している、またはT-SQLを避けようとしています。それはSystem.Data.SqlClientを使用して、このようなものになるだろうよりも、かつてのだ場合:
SqlConnection cn = new SqlConnection("a connection string to your server");
SqlCommand cm = new SqlCommand("", cn);
cn.Open();
最初のステップは、partition functionを作成することです。これは、各パーティションの境界が何であるかを示すパーティションのガイドです。日時を個々の月に分割するこの例は、Books Onlineから直接得られます。
cm.CommandText = "CREATE PARTITION FUNCTION [myDateRangePF1] (datetime)
AS RANGE RIGHT FOR VALUES ('20110201', '20110301', '20110401',
'20110501', '20110601', '20110701', '20110801',
'20110901', '20111001', '20111101', '20111201')";
cm.ExecuteNonQuery();
次のステップはcreate a schemeです。これは、作成した関数を各パーティション(月)ごとに1つ、ファイルグループにマップします。ファイルグループはすでに存在していなければなりません。ファイルグループ(複数可)上
cm.CommandText = "CREATE PARTITION SCHEME myRangePS1
AS PARTITION myRangePF1 TO
(test1fg, test2fg, test3fg, test4fg, test5fg, test6fg,
test7fg, test8fg, test9fg, test10fg, test11fg, test12fg)";
cm.ExecuteNonQuery();
そして最後にcreating a table:
cm.CommandText = "CREATE TABLE PartitionTable (col1 int, col2 datetime)
ON myRangePS1 (col2)";
cm.ExecuteNonQuery();
cn.Close();
そして最後に、あなたはすでにパーティション分割しようとしているテーブルには、あなたが機能を構築する必要があるとしているが存在する場合スキーム、それと同じように見える別のテーブルを作成し、データを新しいテーブルに移動します。
うわー、良い答えをありがとう!私は今それを試しています。 – Contango
私はこれを試しましたが、エラーが発生しました: "無効なオブジェクト名 'test1fg'。"ファイルグループを追加する必要がありますか? – Contango
はい、ファイルグループは既に存在する必要があります。また、あなたはそれらをtest1fgなどと名付ける必要はありません。オンラインの本はすべてのことを話す良い仕事をしているので、3つのステップのそれぞれとのリンクを確認してください。 – RThomas