sp_fulltext_catalog(Transact-SQL)

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

ms189801.note(ko-kr,SQL.90).gif중요:
이후 버전의 SQL Server 에서는 sp_fulltext_catalog 저장 프로시저가 제거됩니다. 새 개발 작업에서는 이 기능을 사용하지 말고 현재 이 저장 프로시저를 사용하는 응용 프로그램을 수정합니다. 대신 새로운 전체 텍스트 데이터 정의 언어(DDL) 문을 사용합니다. 자세한 내용은 CREATE, ALTER, DROP 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\MSSQL.1\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. 전체 텍스트 카탈로그 작성

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

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

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

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

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

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

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

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

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

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

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

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

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

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

참고 항목

참조

FULLTEXTCATALOGPROPERTY(Transact-SQL)
sp_fulltext_database(Transact-SQL)
sp_help_fulltext_catalogs(Transact-SQL)
sp_help_fulltext_catalogs_cursor(Transact-SQL)
시스템 저장 프로시저(Transact-SQL)

관련 자료

전체 텍스트 검색

도움말 및 정보

SQL Server 2005 지원 받기