다음을 통해 공유


sp_fulltext_keymappings(Transact-SQL)

문서 ID(DocId)와 전체 텍스트 키 값 간의 매핑을 반환합니다. DocId 열에는 전체 텍스트 인덱싱된 테이블의 특정 전체 텍스트 키 값에 매핑되는 bigint 정수 값이 포함됩니다. 검색 조건을 만족하는 DocId 값이 전체 텍스트 엔진에서 데이터베이스 엔진으로 전달되고 여기서 쿼리되는 기본 테이블의 전체 텍스트 키 값에 매핑됩니다. 전체 텍스트 키 열은 테이블의 특정 열에 필요한 고유 인덱스입니다. 

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

구문

sp_fulltext_keymappings { table_id | table_id, docid | table_id, NULL, key }

매개 변수

  • table_id
    전체 텍스트 인덱싱된 테이블의 개체 ID입니다. 잘못된 table_id를 지정하면 오류가 반환됩니다. 테이블의 개체 ID를 가져오는 방법은 OBJECT_ID(Transact-SQL)를 참조하십시오.

  • docid
    키 값에 해당하는 내부 문서 ID(DocId)입니다. 잘못된 docid 값은 결과를 반환하지 않습니다. 문서 ID에 대한 자세한 내용은 전체 텍스트 인덱스 구조를 참조하십시오.

  • key
    지정한 테이블의 전체 텍스트 키 값입니다. 잘못된 key 값은 결과를 반환하지 않습니다. 전체 텍스트 키 값에 대한 자세한 내용은 방법: 전체 텍스트 키 열 조회(Transact-SQL)를 참조하십시오.

중요 정보중요

한 개, 두 개 또는 세 개의 매개 변수를 사용하는 방법은 이 항목의 뒷부분에 나오는 "주의"를 참조하십시오.

반환 코드 값

없음

결과 집합

열 이름

데이터 형식

설명

DocId

bigint

키 값에 해당하는 내부 문서 ID(DocId) 열입니다.

*

지정한 테이블의 전체 텍스트 키 값입니다.

매핑 테이블에 전체 텍스트 키가 없으면 빈 행 집합이 반환됩니다.

* Key의 데이터 형식은 기본 테이블에 있는 전체 텍스트 키 열의 데이터 형식과 동일합니다.

사용 권한

이 함수는 공개 함수이며 특별한 사용 권한이 필요하지 않습니다.

주의

다음 표에서는 한 개, 두 개 또는 세 개의 매개 변수를 사용한 결과에 대해 설명합니다.

매개 변수 목록

결과

table_id

table_id 매개 변수만 사용하여 호출할 경우 sp_fulltext_keymappings는 지정한 기본 테이블의 모든 전체 텍스트 키(Key) 값과 함께 각 키에 해당하는 DocId를 반환합니다. 여기에는 삭제가 보류된 키가 포함됩니다.

이 함수는 다양한 문제를 해결하는 데 유용합니다. 특히, 선택한 전체 텍스트 키가 정수 데이터 형식이 아닐 경우 전체 텍스트 인덱스 내용을 보는 데 유용합니다. 여기에는 sp_fulltext_keymappings의 결과를 sys.dm_fts_index_keywords_by_document의 결과와 조인하는 작업이 포함됩니다. 자세한 내용은 sys.dm_fts_index_keywords_by_document(Transact-SQL)를 참조하십시오.

그러나 일반적으로는 가능하면 sp_fulltext_keymappings를 특정 전체 텍스트 키나 DocId를 지정하는 매개 변수와 함께 실행하는 것이 좋습니다. 이 방법은 전체 키 맵을 반환하는 것보다 훨씬 효율적입니다. 특히 매우 큰 테이블의 경우 전체 키 맵을 반환하기 위한 성능 비용이 상당히 크므로 더욱 효율적입니다.

table_id, docid

table_id 및 docid만 지정할 경우 docid는 NULL이 아니어야 하고 지정한 테이블의 올바른 DocId를 지정해야 합니다. 이 함수는 특정 전체 텍스트 인덱스의 DocId에 해당하는 기본 테이블에서 사용자 지정 전체 텍스트 키를 분리하는 데 유용합니다.

table_id, NULL, key

세 개의 매개 변수가 있을 경우 두 번째 매개 변수는 NULL이어야 하며 key는 NULL이 아니어야 하고 지정한 테이블의 올바른 전체 텍스트 키 값을 지정해야 합니다. 이 함수는 특정 전체 텍스트 키에 해당하는 DocId를 기본 테이블에서 분리하는 데 유용합니다.

다음과 같은 경우 오류가 반환됩니다.

  • 잘못된 table_id를 지정한 경우

  • 테이블이 전체 텍스트 인덱싱되지 않은 경우

  • NULL이 아닐 수 있는 매개 변수에 대해 NULL이 발생한 경우

[!참고]

이 섹션의 예에서는 AdventureWorks 예제 데이터베이스의 Production.ProductReview 테이블을 사용합니다. CREATE FULLTEXT INDEX(Transact-SQL)의 ProductReview 테이블에 대해 제공된 예를 실행하여 이 인덱스를 만들 수 있습니다.

1. 모든 Key 및 DocId 값 가져오기

다음 예에서는 DECLARE 문을 사용하여 지역 변수 @table\_id를 만들고 ProductReview 테이블의 ID를 해당 값으로 할당합니다. 이 예에서는 sp_fulltext_keymappings를 실행하여 table_id 매개 변수에 @table\_id를 지정합니다.

[!참고]

작은 테이블의 경우 sp_fulltext_keymappings에 table_id 매개 변수만 사용하는 것이 좋습니다.

USE AdventureWorks;
GO
DECLARE @table_id int = OBJECT_ID(N'Production.ProductReview');
EXEC sp_fulltext_keymappings @table_id;
GO

이 예에서는 다음과 같이 테이블에서 모든 DocId 및 전체 텍스트 키를 반환합니다.

docid

key

1

1

1

2

2

2

3

3

3

4

4

4

2. 특정 Key 값에 대한 DocId 값 가져오기

다음 예에서는 DECLARE 문을 사용하여 지역 변수 @table\_id를 만들고 ProductReview 테이블의 ID를 해당 값으로 할당합니다. 이 예에서는 sp_fulltext_keymappings를 실행하여 table_id 매개 변수에 @table\_id를 지정하고, docid 매개 변수에 NULL을 지정하며, key 매개 변수에 4를 지정합니다.

[!참고]

작은 테이블의 경우 sp_fulltext_keymappings에 table_id 매개 변수만사용하는 것이 좋습니다.

USE AdventureWorks;
GO
DECLARE @table_id int = OBJECT_ID(N'Production.ProductReview');
EXEC sp_fulltext_keymappings @table_id, NULL, 4;
GO

이 예에서는 다음 결과를 반환합니다.

docid

key

4

4

4

변경 내역

업데이트된 내용

예를 추가했습니다.