sp_fulltext_catalog(Transact-SQL)

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

중요 정보중요

Microsoft SQL Server의 이후 버전에서는 이 기능이 제거됩니다. 새 개발 작업에서는 이 기능을 사용하지 않도록 하고, 현재 이 기능을 사용하는 응용 프로그램은 수정하십시오. 대신 CREATE FULLTEXT CATALOG, ALTER FULLTEXT CATALOGDROP FULLTEXT CATALOG를 사용하십시오.

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

구문

sp_fulltext_catalog [ @ftcat= ] 'fulltext_catalog_name' , 
     [ @action= ] 'action' 
     [ , [ @path= ] 'root_directory' ] 

인수

  • [ @ftcat=] 'fulltext_catalog_name'
    전체 텍스트 카탈로그의 이름입니다. 카탈로그 이름은 각 데이터베이스에 대해 고유해야 합니다. fulltext_catalog_namesysname입니다.

  • [ @action=] 'action'
    수행할 동작입니다. action은 **varchar(20)**이며 다음 값 중 하나를 사용할 수 있습니다.

    [!참고]

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

    설명

    Create

    파일 시스템에 빈 전체 텍스트 카탈로그를 새로 만들고 fulltext_catalog_nameroot_directory 값(있을 경우)으로 sysfulltextcatalogs와 연결된 행을 추가합니다. fulltext_catalog_name은 반드시 데이터베이스 내에서 고유해야 합니다.

    Drop

    fulltext_catalog_name을 파일 시스템에서 제거하고 sysfulltextcatalogs에서 연결된 행을 삭제하여 제거합니다. 해당 카탈로그에 한 개 이상의 테이블에 대한 인덱스가 있는 경우에는 이 동작이 실패합니다. 카탈로그에서 테이블을 삭제하려면 sp_fulltext_table 'table_name', 'drop'을 실행해야 합니다.

    카탈로그가 없을 경우에는 오류가 표시됩니다.

    start_incremental

    fulltext_catalog_name에 대해 증분 채우기를 시작합니다. 카탈로그가 없을 경우에는 오류가 표시됩니다. 전체 텍스트 인덱스 채우기가 이미 활성화된 경우에는 경고가 표시되고 채우기 동작은 수행되지 않습니다. 증분 채우기의 경우 전체 텍스트 인덱싱에 대해 변경된 행만 검색됩니다. 단, 전체 텍스트가 인덱싱되는 테이블에 timestamp 열이 있어야 합니다.

    start_full

    fulltext_catalog_name에 대한 전체 채우기를 시작합니다. 전체 텍스트 인덱싱에 대해 전체 텍스트 카탈로그와 연결된 모든 테이블의 모든 행 및 이미 인덱스를 만든 행까지도 검색합니다.

    Stop

    fulltext_catalog_name에 대한 인덱스 채우기를 중지합니다. 카탈로그가 없을 경우에는 오류가 표시됩니다. 채우기가 이미 중단된 경우에는 경고가 표시되지 않습니다.

    Rebuild

    fulltext_catalog_name을 다시 작성합니다. 카탈로그를 다시 작성하면 기존 카탈로그가 삭제되고 새 카탈로그가 해당 위치에 만들어집니다. 전체 텍스트 인덱싱 참조가 있는 모든 테이블은 새 카탈로그와 연결됩니다. 카탈로그를 다시 작성하면 데이터베이스 시스템 테이블의 전체 텍스트 메타데이터가 설정됩니다.

    변경 추적이 해제되어 있으면 새로 만들어진 전체 텍스트 카탈로그가 다시 채워지지도 않습니다. 이 경우 다시 채우려면 start_full 또는 start_incremental 동작으로 sp_fulltext_catalog를 실행해야 합니다.

  • [ @path=] 'root_directory'
    create 동작용 루트 디렉터리입니다. 단, 완전한 실제 경로는 아닙니다. root_directory는 **nvarchar(100)**이며 기본값은 설치 시에 지정된 기본 위치를 사용하도록 지정하는 NULL입니다. 이 디렉터리는 C:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\FTData와 같이 Mssql 디렉터리의 Ftdata 하위 디렉터리입니다. 지정된 루트 디렉터리는 반드시 같은 컴퓨터의 드라이브에 있어야 하며 드라이브 문자 및 다른 문자로 구성되어야 하고 상대 경로가 될 수 없습니다. 네트워크 드라이브, 이동식 드라이브, 플로피 디스크 및 UNC 경로는 지원하지 않습니다. 전체 텍스트 카탈로그는 SQL Server 인스턴스와 연결된 로컬 하드 드라이브에 만들어야 합니다.

    @pathactioncreate인 경우에만 유효합니다. stop, rebuildcreate 외의 동작을 수행하는 경우에는 @path가 NULL이거나 생략되어야 합니다.

    클러스터에서 SQL Server 인스턴스가 가상 서버인 경우 SQL Server 리소스가 의존하는 공유 디스크 드라이브에 있는 카탈로그 디렉터리를 지정해야 합니다. @path를 지정하지 않으면 기본 카탈로그 디렉터리의 위치는 공유 디스크 드라이브에서 가상 서버를 설치할 때 지정한 디렉터리에 있게 됩니다.

반환 코드 값

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

결과 집합

없음

주의

start_full 동작은 fulltext_catalog_name에서 전체 텍스트 데이터의 완전한 스냅숏을 만드는 데 사용합니다. start_incremental 동작은 데이터베이스에서 변경된 행만 다시 인덱스를 만들 때 사용합니다. 테이블에 timestamp 유형의 열이 있는 경우에만 증분 채우기를 적용할 수 있습니다. 전체 텍스트 카탈로그의 테이블에 timestamp 형식의 열이 없을 경우 테이블에 전체 채우기가 수행됩니다.

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

사용 권한

호출자는 db_owner 역할의 멤버여야 합니다. 요청된 동작에 따라 대상 전체 텍스트 카탈로그에 대한 ALTER 또는 CONTROL 권한(db_owner가 보유함)이 호출자에게 거부되어서는 안 됩니다.

1. 전체 텍스트 카탈로그 작성

다음 예에서는 AdventureWorks2008R2 데이터베이스에 Cat_Desc라는 빈 전체 텍스트 카탈로그를 만듭니다.

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

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

다음 예에서는 AdventureWorks2008R2 데이터베이스에 Cat_Desc라는 기존 전체 텍스트 카탈로그를 다시 만듭니다.

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

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

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

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

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

다음 예에서는 Cat_Desc 카탈로그의 채우기를 중지합니다.

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

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

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

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