다음을 통해 공유


$PARTITION(Transact-SQL)

지정된 파티션 함수에 대해 분할 열 값 집합이 매핑되는 파티션 번호를 반환합니다.

항목 링크 아이콘Transact-SQL 구문 표기 규칙

구문

[ database_name. ] $PARTITION.partition_function_name(expression)

인수

  • database_name
    파티션 함수가 포함된 데이터베이스의 이름입니다.

  • partition_function_name
    분할 열 값 집합이 적용되는 기존 파티션 함수의 이름입니다.

  • expression
    데이터 형식이 해당 분할 열의 데이터 형식과 일치하거나 이 데이터 형식으로의 암시적 변환이 가능해야 하는 입니다. expression은 현재 partition_function_name에 참여하는 분할 열의 이름일 수도 있습니다.

반환 형식

int

주의

$PARTITION은 1과 파티션 함수의 파티션 개수 사이에 속하는 int 값을 반환합니다.

$PARTITION은 값이 현재 파티션 함수를 사용하는 분할된 테이블이나 인덱스에 있는지에 관계없이 올바른 값의 파티션 번호를 반환합니다.

1. 분할 열 값 집합에 대한 파티션 번호 가져오기

다음 예에서는 테이블이나 인덱스를 4개의 파티션으로 분할하는 파티션 함수 RangePF1을 만듭니다. $PARTITION은 RangePF1의 분할 열을 나타내는 10 값이 테이블의 파티션 1에 포함되는지 확인하는 데 사용됩니다.

USE AdventureWorks ;
GO
CREATE PARTITION FUNCTION RangePF1 ( int )
AS RANGE FOR VALUES (10, 100, 1000) ;
GO
SELECT $PARTITION.RangePF1 (10) ;
GO

2. 분할된 테이블이나 인덱스의 비어 있지 않은 각 파티션에 있는 행 수 가져오기

다음 예에서는 데이터가 있는 TransactionHistory 테이블의 각 파티션에 있는 행 수를 반환합니다. TransactionHistory 테이블은 파티션 함수 TransactionRangePF1을 사용하며 TransactionDate 열에서 분할됩니다.

[!참고]

이 예를 실행하려면 먼저 AdventureWorks 예제 데이터베이스에 대해 PartitionAW.sql 스크립트를 실행해야 합니다. 자세한 내용은 Readme_PartitioningScript를 참조하십시오.

USE AdventureWorks ;
GO
SELECT $PARTITION.TransactionRangePF1(TransactionDate) AS Partition, 
COUNT(*) AS [COUNT] FROM Production.TransactionHistory 
GROUP BY $PARTITION.TransactionRangePF1(TransactionDate)
ORDER BY Partition ;
GO

3. 분할된 테이블이나 인덱스의 특정 파티션에서 모든 행 반환

다음 예에서는 TransactionHistory 테이블의 파티션 5에 있는 모든 행을 반환합니다.

[!참고]

이 예를 실행하려면 먼저 AdventureWorks 예제 데이터베이스에 대해 PartitionAW.sql 스크립트를 실행해야 합니다. 자세한 내용은 Readme_PartitioningScript를 참조하십시오.

SELECT * FROM Production.TransactionHistory
WHERE $PARTITION.TransactionRangePF1(TransactionDate) = 5 ;