获取记录的当前分区

GaT*_*mas 7 sql-server sql-server-2008-r2 partitioning

在 SQL Server 2008 R2 中,如何确定记录当前位于哪个分区?

Aar*_*and 10

当您可以识别表中已有的一行或一组行时,您可以这样做:

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

如果您只有一个值,并且它不一定在表中,您可以$PARTITION独立使用在给定当前状态的情况下判断它将处于哪个分区:

SELECT $PARTITION.[PartitionFunctionName](SomeConstant);
Run Code Online (Sandbox Code Playgroud)

(如果您使用同一列标识表中的行,这也是有用的速记。)