sp_fulltext_table(Transact-SQL)

적용 대상:SQL ServerAzure Synapse Analytics

전체 텍스트 인덱싱을 위해 테이블을 표시하거나 표시 해제합니다.

Important

이 기능은 이후 버전의 SQL Server에서 제거됩니다. 새 개발 작업에서는 이 기능을 사용하지 않도록 하고, 현재 이 기능을 사용하는 애플리케이션은 수정하세요. 대신 CREATE FULLTEXT INDEX, ALTER FULLTEXT INDEXDROP FULLTEXT INDEX를 사용합니다.

Transact-SQL 구문 표기 규칙

구문

sp_fulltext_table
    [ @tabname = ] N'tabname'
    , [ @action = ] 'action'
    [ , [ @ftcat = ] N'ftcat' ]
    [ , [ @keyname = ] N'keyname' ]
[ ; ]

인수

[ @tabname = ] N'tabname'

한 부분 또는 두 부분으로 구성된 테이블 이름입니다. 테이블은 반드시 현재 데이터베이스에 있어야 합니다. @tabname nvarchar(517)이며 기본값은 없습니다.

[ @action = ] 'action'

수행할 작업입니다. @action 기본값이 없는 nvarchar(50)이며 이러한 값 중 하나일 수 있습니다.

설명
만들기 @tabname 참조하는 테이블의 전체 텍스트 인덱스에 대한 메타데이터를 만들고 이 테이블의 전체 텍스트 인덱스 데이터가 @ftcat 상주하게 지정합니다. 또한 이 작업은 @keyname 전체 텍스트 키 열로 사용하도록 지정합니다. 이 고유한 인덱스는 반드시 이미 존재해야 하며, 테이블의 한 열에서 정의되어야 합니다.

전체 텍스트 카탈로그가 채워질 때까지 이 테이블에 대해 전체 텍스트 검색을 수행할 수 없습니다.
Drop @tabname 대한 전체 텍스트 인덱스 메타데이터를 삭제합니다. 전체 텍스트 인덱스가 활성 상태이면 삭제되기 전에 자동으로 비활성화됩니다. 전체 텍스트 인덱스를 삭제하기 전에 열을 제거할 필요는 없습니다.
활성화 비활성화된 후 @tabname 위해 전체 텍스트 인덱스 데이터를 수집할 수 있는 기능을 활성화합니다. 전체 텍스트 인덱스가 활성화되려면 먼저 하나 이상의 열이 전체 텍스트 인덱스로 참여해야 합니다.

인덱싱을 위해 첫 번째 열이 추가되는 즉시 전체 텍스트 인덱스가 자동으로 활성화됩니다(채우기용). 마지막 열이 인덱스에서 삭제되면 인덱스가 비활성 상태가 됩니다. 변경 내용 추적이 진행 중인 경우 비활성화된 인덱스를 활성화하면 채우기가 새로 시작됩니다.

실제로 전체 텍스트 인덱스를 채웁니다. 하지만 다음 전체 텍스트 인덱스 채우기 중에 @tabname 행을 검색할 수 있도록 파일 시스템의 전체 텍스트 카탈로그에 테이블을 등록하기만 하면 됩니다.
Deactivate @tabname 대해 전체 텍스트 인덱스 데이터를 더 이상 수집할 수 없도록 @tabname 전체 텍스트 인덱스를 비활성화합니다. 전체 텍스트 인덱스 메타데이터를 다시 기본 테이블을 다시 활성화할 수 있습니다.

변경 내용 추적이 설정되면 활성 인덱스를 비활성화하면 인덱스의 상태가 중지됩니다. 진행 중인 채우기가 중지되고 더 이상 변경 내용이 인덱스에 전파되지 않습니다.
start_change_tracking 전체 텍스트 인덱스의 증분 채우기를 시작합니다. 테이블에 타임스탬프가 없는 경우 전체 텍스트 인덱스의 전체 채우기를 시작합니다. 테이블의 변경 내용 추적을 시작합니다.

전체 텍스트 변경 내용 추적은 이미지, 텍스트 또는 ntext 형식의 전체 텍스트 인덱싱된 열에서 수행되는 WRITETEXT 또는 UPDATETEXT 작업을 추적하지 않습니다.
stop_change_tracking 테이블에 대한 변경 내용 추적을 중지합니다.
update_index 추적된 변경 내용의 현재 집합을 전체 텍스트 인덱스로 전파합니다.
start_background_updateindex 추적된 변경 내용이 발생하면 전체 텍스트 인덱스로 전파를 시작합니다.
stop_background_updateindex 추적된 변경 내용이 발생하면 전체 텍스트 인덱스로 전파를 중지합니다.
start_full 테이블에 대한 전체 텍스트 인덱스의 전체 채우기를 시작합니다.
start_incremental 테이블에 대한 전체 텍스트 인덱스의 증분 채우기를 시작합니다.
Stop 전체 또는 증분 채우기를 중단합니다.

[ @ftcat = ] N'ftcat'

만들기 작업에 대한 유효한 기존 전체 텍스트 카탈로그 이름입니다. 다른 모든 작업의 경우 이 매개 변수는 NULL이어야 합니다. @ftcat sysname이며 기본값은 .입니다NULL.

[ @keyname = ] N'keyname'

만들기 작업에 대한 @tabname 유효한 단일 키 열의 고유한 nullable이 아닌 인덱스입니다. 다른 모든 작업의 경우 이 매개 변수는 NULL이어야 합니다. @keyname sysname이며 기본값은 .입니다NULL.

반환 코드 값

0 (성공) 또는 1 (실패).

결과 집합

없음.

설명

특정 테이블에 대해 전체 텍스트 인덱스가 비활성화되면 기존 전체 텍스트 인덱스가 다음 전체 채우기까지 다시 기본. 그러나 SQL Server가 비활성화된 테이블에 대한 쿼리를 차단하기 때문에 이 인덱스는 사용되지 않습니다.

테이블이 다시 활성화되고 인덱스가 다시 채워지지 않으면 다시 기본 모든 열에 대한 쿼리에 이전 인덱스를 계속 사용할 수 있지만 새 전체 텍스트 사용 열은 사용할 수 없습니다. 삭제된 열의 데이터는 전체 텍스트 열 검색을 지정하는 쿼리에서 일치합니다.

전체 텍스트 인덱싱을 위해 테이블이 정의되면 해당 열의 데이터 형식을 변경하거나 전체 텍스트 고유 키를 한 열에서 다른 열로 변경하여 전체 텍스트 고유 키 열을 한 데이터 형식에서 다른 데이터 형식으로 전환합니다. 전체 다시 채우기 없이 후속 쿼리 중에 오류가 발생하고 오류 메시지가 반환될 수 있습니다.

전체 텍스트 검색 키 값 key_value data_type 형식으로 변환하지 못했습니다.

이 오류를 방지하려면 삭제 작업을 sp_fulltext_table 사용하여 이 테이블에 대한 전체 텍스트 정의를 삭제하고 사용 sp_fulltext_tablesp_fulltext_column및 다시 정의합니다.

전체 텍스트 키 열은 900바이트 이하로 정의해야 합니다. 성능상의 이유로 키 열의 크기가 가능한 한 작은 것이 좋습니다.

사용 권한

sysadmin 고정 서버 역할의 멤버, db_ownerdb_ddladmin 고정 데이터베이스 역할 또는 전체 텍스트 카탈로그에 대한 참조 권한이 있는 사용자만 실행할 sp_fulltext_table수 있습니다.

예제

A. 전체 텍스트 인덱싱에 테이블 사용

다음 예에서는 Document 데이터베이스의 AdventureWorks 테이블에 대한 전체 텍스트 인덱스 메타데이터를 만듭니다. Cat_Desc는 전체 텍스트 카탈로그이고, PK_Document_DocumentIDDocument의 고유한 단일 열 인덱스입니다.

USE AdventureWorks2022;
GO

EXEC sp_fulltext_table 'Production.Document',
    'create',
    'Cat_Desc',
    'PK_Document_DocumentID';

--Add some columns
EXEC sp_fulltext_column 'Production.Document',
    'DocumentSummary',
    'add';

-- Activate the full-text index
EXEC sp_fulltext_table 'Production.Document',
    'activate';
GO

B. 변경 내용 활성화 및 전파

다음 예에서는 변경될 때마다 추적한 변경 내용을 활성화하여 전체 텍스트 인덱스로 전파를 시작합니다.

USE AdventureWorks2022;
GO
EXEC sp_fulltext_table 'Production.Document', 'Start_change_tracking';
EXEC sp_fulltext_table 'Production.Document', 'Start_background_updateindex';
GO

C. 전체 텍스트 인덱스 제거

다음 예에서는 Document 데이터베이스의 AdventureWorks 테이블에 대한 전체 텍스트 인덱스 메타데이터를 제거합니다.

USE AdventureWorks2022;
GO
EXEC sp_fulltext_table 'Production.Document', 'drop';
GO