web-dev-qa-db-ja.com

レコードの現在のパーティションを取得する

SQL Server 2008 R2では、現在レコードが存在するパーティションをどのように判断しますか?

6
GaTechThomas

テーブルに既に存在する行または行のセットを特定できる場合は、次のように行うことができます。

SELECT $PARTITION.[PartitionFunctionName](PartitioningColumn)
  FROM dbo.table
  WHERE <clause to identify rows>;

値だけがあり、まだテーブルにあるとは限らない場合は、 $PARTITION 独立して:

SELECT $PARTITION.[PartitionFunctionName](SomeConstant);

(これは、同じ列を使用してテーブル内の行を識別する場合にも便利です。)

9
Aaron Bertrand

これを行うには、$ PARTITION関数を使用できます。以下のリンクはあなたを助けるでしょう:

http://msdn.Microsoft.com/en-us/library/ms188071.aspx

4
Mr.Brownstone