ALTER FULLTEXT INDEX(Transact-SQL)

업데이트: 2006년 12월 12일

전체 텍스트 인덱스의 속성을 변경합니다.

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

구문

ALTER FULLTEXT INDEX ON table_name
   { ENABLE 
   | DISABLE
   | SET CHANGE_TRACKING { MANUAL | AUTO | OFF }
   | ADD ( column_name 
     [ TYPE COLUMN type_column_name ] 
     [ LANGUAGE language_term ] [,...n] )
     [ WITH NO POPULATION ]
   | DROP ( column_name [,...n] )
     [WITH NO POPULATION ] 
   | START { FULL | INCREMENTAL | UPDATE } POPULATION
   | { STOP | PAUSE | RESUME } POPULATION 
   }

인수

  • table_name
    전체 텍스트 인덱스에 있는 열을 포함하는 테이블 이름입니다. 선택적으로 데이터베이스나 테이블 소유자 이름을 지정할 수 있습니다.
  • ENABLE | DISABLE
    table_name에 대해 전체 텍스트 인덱스 데이터를 수집할지 여부를 Microsoft SQL Server에 알립니다. ENABLE은 전체 텍스트 인덱스를 활성화하고, DISABLE은 전체 텍스트 인덱스를 비활성화합니다.

    전체 텍스트 인덱스를 비활성화하면 전체 텍스트 인덱스 메타데이터는 시스템 테이블에 유지됩니다. 전체 텍스트 인덱스가 비활성화되어 있는 경우 CHANGE_TRACKING이 활성화된 상태(자동 또는 수동 업데이트)이면 인덱스의 상태는 고정되고 진행 중인 탐색은 중지되며 테이블 데이터 변경 내용은 추적되거나 인덱스로 전파되지 않습니다. table_name의 전체 텍스트 인덱스는 ENABLE로 다시 활성화할 수 있습니다.

  • SET CHANGE_TRACKING {MANUAL | AUTO | OFF}
    SQL Server에서 인덱싱된 데이터의 모든 변경 내용 목록을 전체 텍스트 카탈로그에 유지할지 여부를 지정합니다. WRITETEXT 및 UPDATETEXT를 통한 데이터 변경 내용은 전체 텍스트 인덱스에 반영되지 않고 변경 내용 추적 시 선택되지도 않습니다.

    전체 텍스트 인덱스의 CHANGE_TRACKING 상태를 수정하려면 전체 텍스트 인덱싱된 테이블이 상주하는 FILEGROUP을 OFFLINE 또는 READONLY로 설정하면 안 됩니다. 그렇지 않으면 명령이 실패하고 SQL Server에서 오류를 반환합니다.

  • Manual
    변경 추적 로그를 SQL Server 에이전트를 사용하여 일정에 따라 전파할 것인지 또는 사용자가 수동으로 전파할 것인지 지정합니다.
  • AUTO
    관련 테이블에서 데이터가 수정되면 SQL Server에서 전체 텍스트 인덱스를 자동으로 업데이트하도록 지정합니다. AUTO가 기본값입니다.
  • OFF
    SQL Server에서 인덱싱된 데이터의 변경 내용 목록을 유지하지 않도록 지정합니다.
  • ADD | DROP column_name
    전체 텍스트 인덱스에서 추가하거나 삭제할 열을 지정합니다. 열은 char, varchar, nchar, nvarchar, text, ntext, image, xml 또는 varbinary(max) 유형이어야 합니다.

    전체 텍스트 인덱싱에 대해 이전에 활성화된 열에서만 DROP 절을 사용하십시오.

    ADD 절에서 TYPE COLUMN 및 LANGUAGE를 사용하여 column_name에서 다음 속성을 설정할 수 있습니다. 열이 추가되면 이 열에 대해 전체 텍스트 쿼리가 실행되도록 테이블의 전체 텍스트 인덱스를 다시 채워야 합니다.

    WITH NO POPULATION을 지정하지 않으면 전체 텍스트 인덱스에서 열이 추가되거나 삭제된 후 SQL Server에서 전체 채우기를 자동으로 시작합니다.

  • TYPE COLUMN type_column_name
    column_name 문서 유형을 보유하는 table_name의 열 이름입니다. column_name의 열이 varbinary(max) 또는 image 유형인 경우에만 type_column_name을 지정하십시오.

    TYPE COLUMN의 데이터 형식은 char, nchar, varchar 또는 nvarchar일 수 있습니다. 전체 텍스트 지원 파일 형식 및 varbinary(max) 열에 저장된 인덱싱 데이터에 대한 자세한 내용은 전체 텍스트 검색 필터를 참조하십시오.

  • LANGUAGE language_term
    column_name에 저장된 데이터의 언어입니다.

    language_term은 옵션이며 언어의 LCID(로캘 ID)에 해당하는 문자열, 정수 또는 16진수 값으로 지정할 수 있습니다. language_term을 지정할 경우 해당 언어는 검색 조건의 모든 요소에 적용됩니다. 값을 지정하지 않으면 SQL Server 인스턴스의 기본 전체 텍스트 언어가 사용됩니다.

    sp_configure 저장 프로시저를 사용하여 SQL Server 인스턴스의 기본 전체 텍스트 언어에 대한 정보에 액세스할 수 있습니다. 자세한 내용은 default full-text language 옵션을 참조하십시오.

    문자열로 지정하는 경우 language_termsyslanguages 시스템 테이블의 alias 열 값에 해당합니다. 문자열은 'language_term'과 같이 작은따옴표로 묶어야 합니다. 정수로 지정하는 경우 language_term은 언어를 식별하는 실제 LCID입니다. 16진수 값으로 지정하는 경우 language_term은 0x로 시작하는 LCID의 16진수 값입니다. 16진수 값은 선행 0을 포함하여 8자리 수를 초과할 수 없습니다.

    값이 DBCS(더블바이트 문자 집합) 형식인 경우 SQL Server는 값을 유니코드로 변환합니다.

    단어 분리기 및 형태소 분석기 같은 리소스는 language_term으로 지정된 언어에 사용해야 합니다. 이러한 리소스가 지정된 언어를 지원하지 않는 경우 SQL Server에서 오류를 반환합니다.

    비-BLOB 및 비-XML 열이 여러 언어로 된 텍스트 데이터를 포함하거나 열에 저장된 텍스트의 언어를 알 수 없는 경우 언어 중립적인 리소스(0x0)를 사용합니다. XML 유형 또는 BLOB 유형의 열로 저장된 문서의 경우 인덱싱 시에 문서 내의 언어 인코딩이 사용됩니다. 예를 들어 XML 열에서는 XML 문서의 xml:lang 특성이 언어를 식별합니다. 쿼리 시에 language_term이 전체 텍스트 쿼리의 일부로 지정되지 않은 경우 language_term에 지정된 이전 값이 전체 텍스트 쿼리의 기본 언어로 사용됩니다.

  • [ ,...n]
    ADD 또는 DROP 절에 대해 여러 열을 지정할 수 있음을 나타냅니다. 여러 열을 지정하는 경우 각 열은 쉼표로 구분하십시오.
  • WITH NO POPULATION
    ADD 또는 DROP 열 작업 후 전체 텍스트 인덱스가 채워지지 않도록 지정합니다. 사용자가 START...POPULATION 명령을 실행하는 경우에만 인덱스가 채워집니다.

    CHANGE_TRACKING을 활성화하고 WITH NO POPULATION을 지정하면 SQL Server에서 오류를 반환합니다. CHANGE_TRACKING을 활성화하고 WITH NO POPULATION을 지정하지 않으면 SQL Server에서 인덱스를 생성한 후 해당 인덱스에서 전체 채우기를 수행합니다.

    NO POPULATION 옵션은 CHANGE_TRACKING이 OFF일 경우에만 사용할 수 있습니다. NO POPULATION을 지정하면 SQL Server에서 인덱스를 만든 후 인덱스를 채우지 않습니다. 인덱스는 사용자가 ALTER FULLTEXT INDEX...START POPULATION 명령을 제공하는 경우에만 채워집니다. NO POPULATION을 지정하지 않으면 SQL Server에서 인덱스를 만든 후 인덱스를 채웁니다.

  • START {FULL|INCREMENTAL|UPDATE} POPULATION
    table_name의 전체 텍스트 인덱스 채우기를 시작하도록 SQL Server에 알립니다. 전체 텍스트 인덱스 채우기가 이미 진행 중이면 SQL Server에서 경고를 반환하고 새 채우기를 시작하지 않습니다.
    • FULL
      행이 이미 인덱싱된 경우에도 전체 텍스트 인덱싱을 위해 테이블의 모든 행을 검색하도록 지정합니다.
    • INCREMENTAL
      전체 텍스트 인덱싱을 위해 마지막 채우기 이후 수정된 행만 검색하도록 지정합니다. INCREMENTAL은 테이블에 timestamp 유형의 열이 있는 경우에만 적용할 수 있습니다. 전체 텍스트 카탈로그의 테이블에 timestamp 유형의 열이 없으면 테이블은 FULL 채우기를 수행합니다.
    • UPDATE
      변경 내용 추적 인덱스가 마지막으로 업데이트된 후 모든 삽입, 업데이트 또는 삭제를 처리하도록 지정합니다. 변경 내용 추적 채우기는 테이블에서 활성화해야 하지만 백그라운드 인덱스 업데이트 또는 자동 변경 내용 추적을 설정해서는 안 됩니다.
  • {STOP | PAUSE | RESUME } POPULATION
    진행 중인 채우기를 중지하거나 일시 중지합니다. 또는 일시 중지된 채우기를 중지하거나 재개합니다.

    STOP POPULATION으로 자동 변경 내용 추적 또는 백그라운드 인덱스 업데이트가 중지되지는 않습니다. 변경 내용 추적을 중지하려면 SET CHANGE_TRACKING OFF를 사용하십시오.

    PAUSE POPULATION 및 RESUME POPULATION은 전체 채우기에만 사용할 수 있습니다. 다른 채우기는 탐색이 중지된 위치부터 탐색을 재개하기 때문에 다른 채우기 유형에는 두 옵션이 적용되지 않습니다.

주의

xml 데이터 형식 데이터의 인스턴스가 전체 텍스트 검색에 대해 인덱싱되면 특성 및 요소 이름은 인덱싱되지 않으므로 쿼리할 수 없지만 요소 값은 각 인스턴스에서 인덱싱하고 쿼리할 수 있습니다. 여러 언어를 포함하는 올바른 형식의 XML 문서와 조각이 지원됩니다.

사용 권한

사용자는 테이블 또는 뷰에 대해 ALTER 권한이 있거나 sysadmin 고정 서버 역할, db_ddladmin 또는 db_owner 고정 데이터베이스 역할의 멤버여야 합니다.

다음 예에서는 AdventureWorks 데이터베이스의 JobCandidate 테이블에 있는 전체 텍스트 인덱스를 수정합니다.

USE AdventureWorks;
GO
ALTER FULLTEXT INDEX ON HumanResources.JobCandidate ENABLE;
GO

참고 항목

참조

CREATE FULLTEXT INDEX(Transact-SQL)
DROP FULLTEXT INDEX(Transact-SQL)

관련 자료

전체 텍스트 검색

도움말 및 정보

SQL Server 2005 지원 받기

변경 내역

릴리스 내역

2006년 12월 12일

새로운 내용
  • PAUSE | RESUME POPULATION 옵션을 구문에 추가했습니다.