sp_fulltext_catalog(Transact-SQL)

적용 대상:SQL ServerAzure SQL DatabaseAzure SQL Managed Instance

전체 텍스트 카탈로그를 만들고 삭제하고 카탈로그에 대한 인덱싱 작업을 시작하고 중지합니다. 각 데이터베이스에 대해 여러 개의 전체 텍스트 카탈로그를 만들 수 있습니다.

Important

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

Transact-SQL 구문 표기 규칙

구문

sp_fulltext_catalog
    [ @ftcat = ] N'ftcat'
    , [ @action = ] 'action'
    [ , [ @path = ] N'path' ]
[ ; ]

인수

[ @ftcat = ] N'ftcat'

전체 텍스트 카탈로그의 이름입니다. 카탈로그 이름은 각 데이터베이스에 대해 고유해야 합니다. @ftcat 기본값이 없는 sysname입니다.

[ @action = ] 'action'

수행할 작업입니다. @action varchar(20)이며 이러한 값 중 하나일 수 있습니다.

참고 항목

필요에 따라 전체 텍스트 카탈로그를 만들고 삭제하고 수정할 수 있습니다. 그러나 여러 카탈로그에서 스키마를 동시에 변경하지 않도록 합니다. 이러한 작업은 권장되는 방법으로 저장 프로시저를 사용하여 sp_fulltext_table 수행할 수 있습니다.

설명
create 파일 시스템에 비어 있는 새 전체 텍스트 카탈로그를 만들고 @ftcat 연결된 행 sysfulltextcatalogs추가하고 값이 있는 경우 @path 추가합니다. @ftcat 데이터베이스 내에서 고유해야 합니다.
드롭 파일 시스템에서 제거하고 연결된 행을 삭제하여 @ftcat 삭제합니다sysfulltextcatalogs. 이 카탈로그에 하나 이상의 테이블에 대한 인덱스가 포함되어 있으면 이 작업이 실패합니다. sp_fulltext_table '<table_name>', 'drop' 는 카탈로그에서 테이블을 삭제하기 위해 실행되어야 합니다.

카탈로그가 없으면 오류가 표시됩니다.
start_incremental @ftcat 대한 증분 채우기를 시작합니다. 카탈로그가 없으면 오류가 표시됩니다. 전체 텍스트 인덱스 채우기가 이미 활성 상태이면 경고가 표시되지만 채우기 동작은 발생하지 않습니다. 증분 채우기에서는 전체 텍스트 인덱싱을 위해 변경된 행만 검색됩니다. 테이블에 전체 텍스트 인덱싱되는 타임스탬프 열이 있는 경우.
start_full @ftcat 전체 채우기를 시작합니다. 이 전체 텍스트 카탈로그와 연결된 모든 테이블의 모든 행은 이미 인덱싱된 경우에도 전체 텍스트 인덱싱을 위해 검색됩니다.
stop @ftcat 대한 인덱스 채우기를 중지합니다. 카탈로그가 없으면 오류가 표시됩니다. 채우기가 이미 중단된 경우에는 경고가 표시되지 않습니다.
다시 작성 @ftcat 다시 빌드합니다. 카탈로그를 다시 작성하면 기존 카탈로그가 삭제되고 새 카탈로그가 해당 위치에 만들어집니다. 전체 텍스트 인덱싱 참조가 있는 모든 테이블은 새 카탈로그와 연결됩니다. 카탈로그를 다시 작성하면 데이터베이스 시스템 테이블의 전체 텍스트 메타데이터가 설정됩니다.

변경 내용 추적이 OFF인 경우 다시 작성해도 새로 만든 전체 텍스트 카탈로그가 다시 채워지지는 않습니다. 이 경우 다시 채워지려면 start_full 또는 start_incremental 작업으로 실행 sp_fulltext_catalog 합니다.

[ @path = ] N'path'

만들기 작업에 대한 루트 디렉터리(전체 실제 경로 아님)입니다. @path 설정 시 지정된 기본 위치의 NULL사용을 나타내는 기본값인 nvarchar(100)입니다.

디렉터 FTData 리의 하위 디렉터리 MSSQL 입니다(예: .) C:\Program Files\Microsoft SQL Server\MSSQL16.MSSQLSERVER\MSSQL\FTData. 지정된 루트 디렉터리가 동일한 컴퓨터의 드라이브에 있어야 하며 드라이브 문자 이상으로 구성되며 상대 경로일 수 없습니다. 네트워크 드라이브, 이동식 드라이브, 플로피 디스크 및 UNC 경로는 지원되지 않습니다. SQL Server 인스턴스와 연결된 로컬 하드 드라이브에 전체 텍스트 카탈로그를 만들어야 합니다.

@path @action 만들 때만 유효합니다. 만들기(중지, 다시 빌드 등) 이외의 작업의 경우 @path NULL이거나 생략해야 합니다.

SQL Server 인스턴스가 클러스터의 가상 서버인 경우 지정된 카탈로그 디렉터리가 SQL Server 리소스가 의존하는 공유 디스크 드라이브에 있어야 합니다. @path 지정되지 않은 경우 기본 카탈로그 디렉터리의 위치는 가상 서버가 설치되었을 때 지정된 디렉터리의 공유 디스크 드라이브에 있습니다.

반환 코드 값

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

결과 집합

없음.

설명

start_full 작업은 @ftcat 전체 텍스트 데이터의 전체 스냅샷 만드는 데 사용됩니다. start_incremental 작업은 데이터베이스에서 변경된 행만 다시 인덱싱하는 데 사용됩니다. 테이블에 타임스탬프 형식의 열이 있는 경우에만 증분 채우기를 적용할 수 있습니다. 전체 텍스트 카탈로그의 테이블에 타임스탬프 형식의 열이 없으면 테이블은 전체 채우기를 거칩니다.

전체 텍스트 카탈로그 및 인덱스 데이터는 전체 텍스트 카탈로그 디렉터리에서 만든 파일에 저장됩니다. @path 지정되지 않은 경우전체 텍스트 카탈로그 디렉터리가 @path 또는 서버 기본 전체 텍스트 카탈로그 디렉터리에 지정된 디렉터리의 하위 디렉터리로 만들어집니다. 전체 텍스트 카탈로그 디렉터리의 이름은 서버에서 고유하게 유지되도록 하는 방식으로 빌드됩니다. 따라서 서버의 모든 전체 텍스트 카탈로그 디렉터리에서 동일한 경로를 공유할 수 있습니다.

사용 권한

호출자는 db_owner 역할의 멤버여야 합니다. 요청된 작업에 따라 호출자는 대상 전체 텍스트 카탈로그에 대한 ALTER 또는 CONTROL 권한( db_owner 포함)을 거부해서는 안 됩니다.

예제

A. 전체 텍스트 카탈로그 만들기

이 예제에서는 데이터베이스에 빈 전체 텍스트 카탈로그 Cat_DescAdventureWorks2022 만듭니다.

USE AdventureWorks2022;
GO
EXEC sp_fulltext_catalog 'Cat_Desc', 'create';
GO

B. 전체 텍스트 카탈로그 다시 작성

다음은 데이터베이스에서 기존 전체 텍스트 카탈로그 Cat_DescAdventureWorks2022 를 다시 작성하는 예제입니다.

USE AdventureWorks2022;
GO
EXEC sp_fulltext_catalog 'Cat_Desc', 'rebuild';
GO

C. 전체 텍스트 카탈로그 채우기 시작

이 예제에서는 카탈로그의 전체 채우기를 시작합니다 Cat_Desc .

USE AdventureWorks2022;
GO
EXEC sp_fulltext_catalog 'Cat_Desc', 'start_full';
GO

D. 전체 텍스트 카탈로그의 채우기 중지

다음은 카탈로그 모집단을 중지하는 예제입니다 Cat_Desc .

USE AdventureWorks2022;
GO
EXEC sp_fulltext_catalog 'Cat_Desc', 'stop';
GO

E. 전체 텍스트 카탈로그 제거

이 예제에서는 카탈로그를 Cat_Desc 제거합니다.

USE AdventureWorks2022;
GO
EXEC sp_fulltext_catalog 'Cat_Desc', 'drop';
GO