다음을 통해 공유


CREATE FULLTEXT CATALOG(Transact-SQL)

데이터베이스에 대한 전체 텍스트 카탈로그를 만듭니다. 전체 텍스트 카탈로그 하나에 전체 텍스트 인덱스는 여러 개 있을 수 있지만 각 전체 텍스트 인덱스는 전체 텍스트 카탈로그 하나에만 속할 수 있습니다. 각 데이터베이스에는 전체 텍스트 카탈로그가 없거나 하나 이상 포함될 수 있습니다.

master, model 또는 tempdb 데이터베이스에서는 전체 텍스트 카탈로그를 만들 수 없습니다.

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

구문

CREATE FULLTEXT CATALOG catalog_name
     [ON FILEGROUP filegroup ]
     [IN PATH 'rootpath']
     [WITH <catalog_option>]
     [AS DEFAULT]
     [AUTHORIZATION owner_name ]

<catalog_option>::=
     ACCENT_SENSITIVITY = {ON|OFF}

인수

  • catalog_name
    새 카탈로그의 이름입니다. 카탈로그 이름은 현재 데이터베이스에 있는 모든 카탈로그 이름과 중복되지 않는 고유 이름이어야 합니다. 또한 전체 텍스트 카탈로그(ON FILEGROUP 참조)에 해당하는 파일의 이름은 데이터베이스에 있는 모든 파일 이름과 중복되지 않는 고유 이름이어야 합니다. 카탈로그 이름이 데이터베이스의 다른 카탈로그에 이미 사용된 경우 SQL Server는 오류를 반환합니다.

    카탈로그 이름은 120자를 초과할 수 없습니다.

  • ON FILEGROUP 'filegroup'
    새 카탈로그가 속할 SQL Server 파일 그룹의 이름입니다. 파일 그룹을 지정하지 않으면 새 카탈로그는 모든 전체 텍스트 카탈로그에 사용되는 기본 파일 그룹에 속하게 됩니다. 기본 전체 텍스트 파일 그룹은 데이터베이스에 대한 주 파일 그룹입니다. 전체 텍스트 카탈로그는 보조 파일 그룹에 배치하는 것이 좋습니다. 이렇게 하면 데이터 및 로그 파일과 독립적으로 전체 텍스트 카탈로그의 파일 그룹 백업 및 복원 작업을 수행할 수 있습니다. 또한 전체 텍스트 카탈로그를 보조 파일 그룹에 배치하면 온라인 전체 텍스트 카탈로그를 복원할 수 있습니다.

    전체 텍스트 카탈로그가 생성된 파일 그룹에는 사용 가능한 데이터 파일이 하나 이상 있어야 합니다. 이 데이터 파일은 전체 텍스트 카탈로그의 일부인 내부 구조에 사용됩니다. SQL Server에 저장되는 이 파일은 OFFLINE 또는 READONLY로 표시해서는 안 됩니다.

    파일 그룹에 있는 카탈로그는 파일처럼 처리되며 물리적 위치는 sys.master_files의 경로로 표시됩니다. 각 전체 텍스트 카탈로그에 대해 생성된 파일의 이름은 **sysft_**에 카탈로그 이름을 붙인 형태입니다. 예를 들어 카탈로그 이름이 catname인 경우 이 카탈로그에 해당하는 파일의 이름은 sysft_catname이 됩니다.

  • IN PATH 'rootpath'
    카탈로그의 루트 디렉터리입니다. rootpath를 지정하지 않으면 새 카탈로그는 설치 시 지정한 기본 디렉터리에 생성됩니다.

    SQL Server 인스턴스에 연결된 로컬 하드 디스크 드라이브에 전체 텍스트 카탈로그를 만들어야 합니다. rootpath는 상대 경로일 수 없으며 같은 컴퓨터의 드라이브에 있어야 합니다. 'C:\'와 같이 드라이브의 루트를 전체 텍스트 카탈로그의 위치로 지정할 수 있지만 좋은 방법은 아닙니다. 네트워크 드라이브, 이동식 드라이브, 플로피 디스크 및 UNC(Universal Naming Convention) 경로는 지원되지 않습니다. 장애 조치(Failover) 클러스터 환경에서는 SQL Server 리소스가 사용하는 공유 디스크에 경로가 있어야 합니다.

    기존 전체 텍스트 카탈로그 이름에 잘못된 경로를 지정하면 SQL Server는 오류를 반환하고 전체 텍스트 카탈로그가 생성되지 않습니다. 지정한 rootpath가 없는 경우 SQL Server는 지정한 경로가 없다는 오류 메시지를 반환합니다.

    전체 텍스트 카탈로그를 차등 백업, 복원 및 복구하려면 전체 텍스트 카탈로그를 NTFS 파일 시스템에 속한 디렉터리에 저장해야 합니다. NTFS가 아닌 파일 시스템에서는 차등 백업, 복원 및 복구가 지원되지 않습니다.

    전체 텍스트 카탈로그는 지정한 루트 경로에 있는 디렉터리로 생성됩니다. 이 디렉터리 이름이 전체 텍스트 카탈로그의 이름이 됩니다. 카탈로그와 이름이 같은 디렉터리가 이미 있을 경우 카탈로그 이름에 접미사가 붙고 이 이름으로 새 디렉터리가 생성됩니다.

    c:\와 같은 드라이브 루트에 전체 텍스트 카탈로그를 만들지 마십시오.

  • ACCENT_SENSITIVITY = {ON|OFF}
    전체 텍스트 인덱싱에 대해 카탈로그의 악센트 구분 여부를 지정합니다. 이 속성을 변경할 경우 인덱스를 다시 만들어야 합니다. 기본적으로 데이터베이스의 데이터 정렬에 지정된 악센트 구분을 사용합니다. 데이터베이스의 데이터 정렬을 표시하려면 sys.databases 카탈로그 뷰를 사용합니다.

    전체 텍스트 카탈로그의 현재 악센트 구분 속성 설정을 확인하려면 FULLTEXTCATALOGPROPERTY 함수에 catalog_nameaccentsensitivity 속성 값을 사용합니다. 반환된 값이 '1'인 경우 전체 텍스트 카탈로그는 악센트를 구분하며 반환된 값이 '0'인 경우 카탈로그는 악센트를 구분하지 않습니다.

  • AS DEFAULT
    카탈로그를 기본 카탈로그로 지정합니다. 전체 텍스트 카탈로그를 명시적으로 지정하지 않고 전체 텍스트 인덱스를 만든 경우 기본 카탈로그가 사용됩니다. 이미 AS DEFAULT로 표시된 기존의 전체 텍스트 카탈로그가 있을 경우 새 카탈로그를 AS DEFAULT로 설정하면 이 카탈로그가 기본 전체 텍스트 카탈로그가 됩니다.
  • AUTHORIZATION owner_name
    전체 텍스트 카탈로그의 소유자를 데이터베이스 사용자 또는 역할의 이름으로 설정합니다. owner_name이 역할인 경우 이 역할은 현재 사용자가 속해 있는 역할의 이름이어야 합니다. 그렇지 않으면 문을 실행하는 사용자가 데이터베이스 소유자 또는 시스템 관리자여야 합니다.

    owner_name이 사용자 이름인 경우 사용자 이름은 다음 중 하나여야 합니다.

    • 문을 실행하는 사용자의 이름이어야 합니다.
    • 명령을 실행하는 사용자가 가장 권한을 가지고 있는 사용자의 이름이어야 합니다.
    • 그렇지 않으면 명령을 실행하는 사용자가 데이터베이스 소유자 또는 시스템 관리자여야 합니다.

    또한 owner_name에는 지정한 전체 텍스트 카탈로그에 대한 TAKE OWNERSHIP 권한이 있어야 합니다.

사용 권한

사용자는 데이터베이스에 대한 CREATE FULLTEXT CATALOG 권한이 있거나 db_owner 또는 db_ddladmin 고정 데이터베이스 역할의 멤버여야 합니다.

다음 예에서는 전체 텍스트 카탈로그와 전체 텍스트 인덱스를 만듭니다.

USE AdventureWorks;
GO
CREATE FULLTEXT CATALOG ftCatalog AS DEFAULT;
GO
CREATE FULLTEXT INDEX ON HumanResources.JobCandidate(Resume) KEY INDEX PK_JobCandidate_JobCandidateID;
GO

참고 항목

참조

ALTER FULLTEXT CATALOG(Transact-SQL)
DROP FULLTEXT CATALOG(Transact-SQL)

관련 자료

전체 텍스트 검색
새 전체 텍스트 카탈로그(일반 페이지)

도움말 및 정보

SQL Server 2005 지원 받기