ALTER FULLTEXT INDEX (Transact-SQL)

Actualizado: 12 de diciembre de 2006

Cambia las propiedades de un índice de texto.

Icono de vínculo a temasConvenciones de sintaxis de Transact-SQL

Sintaxis

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 
   }

Argumentos

  • table_name
    Es el nombre de la tabla que contiene la columna o columnas incluidas en el índice de texto. Especificar los nombres de la base de datos y del propietario de la tabla es opcional.
  • ENABLE | DISABLE
    Indica a Microsoft SQL Server si debe recopilar o no datos de índice de texto para table_name. ENABLE activa el índice de texto; DISABLE lo desactiva.

    Cuando se deshabilita el índice de texto, los metadatos del índice de texto permanecen en las tablas del sistema. Si CHANGE_TRACKING está habilitado (actualización automática o manual) cuando se deshabilita el índice de texto, el estado del índice se inmoviliza, los rastreos en curso se detienen y no se mantiene un seguimiento de los nuevos cambios en los datos de la tabla ni se propagan los cambios al índice. Un índice de texto de table_name se puede reactivar con ENABLE.

  • SET CHANGE_TRACKING {MANUAL | AUTO | OFF}
    Especifica si SQL Server mantiene o no una lista de todos los cambios de los datos indizados en el catálogo de texto. Los cambios realizados en los datos con WRITETEXT y UPDATETEXT no se reflejan en el índice de texto y no se recopilan con el seguimiento de cambios.

    Para modificar el estado CHANGE_TRACKING de un índice de texto, el elemento FILEGROUP en el que reside la tabla con el índice de texto no se debe establecer como OFFLINE ni READONLY. De lo contrario, el comando no funciona y SQL Server devuelve un error.

  • MANUAL
    Especifica que el registro de seguimiento de cambios se propaga en una programación con el Agente SQL Server o manualmente por el usuario.
  • AUTO
    Especifica que SQL Server actualizará automáticamente el índice de texto conforme se modifican los datos de las tablas asociadas. AUTO es el valor predeterminado.
  • OFF
    Especifica que SQL Server no mantendrá una lista de cambios en los datos indizados.
  • ADD | DROP column_name
    Especifica las columnas que se agregarán o eliminarán de un índice de texto. La columna o columnas deben ser de tipo char, varchar, nchar, nvarchar, text, ntext, image, xml o varbinary(max).

    Utilice la cláusula DROP sólo en columnas que se hayan habilitado previamente para la indización de texto.

    Utilice TYPE COLUMN y LANGUAGE con la cláusula ADD para establecer estas propiedades en column_name. Cuando se agrega una columna, el índice de texto de la tabla se debe llenar de nuevo para que funcionen las consultas de texto en esta columna.

    A menos que se especifique WITH NO POPULATION, SQL Server inicia automáticamente un llenado completo después de agregar o quitar una columna de un índice de texto.

  • TYPE COLUMN type_column_name
    Es el nombre de la columna de table_name que contiene el tipo de documento de column_name. Especifique type_column_name sólo si la columna o columnas de column_name son de tipo varbinary(max) o image.

    TYPE COLUMN puede tener el tipo de datos char, nchar, varchar o nvarchar. Para obtener más información acerca de los formatos de archivo compatibles con texto y datos de índice almacenados en columnas varbinary(max), vea Filtros de búsqueda de texto.

  • LANGUAGE language_term
    Es el idioma de los datos almacenados en column_name.

    language_term es opcional y se puede especificar como una cadena, un entero o un valor hexadecimal correspondiente al identificador de configuración regional (LCID) de un idioma. Si se especifica language_term, el idioma que representa se aplica a todos los elementos de la condición de búsqueda. Si no se especifica ningún valor, se utiliza el idioma de texto predeterminado de la instancia de SQL Server.

    Utilice el procedimiento almacenado sp_configure para tener acceso a la información sobre el idioma de texto predeterminado de la instancia de SQL Server. Para obtener más información, vea default full-text language (opción).

    Si el valor especificado es una cadena, language_term corresponde al valor de columna alias de la tabla del sistema syslanguages. La cadena debe ir entre comillas simples, como en 'language_term'. Si el valor especificado es un entero, language_term es el LCID real que identifica el idioma. Si se especifica como un valor hexadecimal, language_term es 0x seguido del valor hexadecimal del LCID. El valor hexadecimal no puede tener más de ocho dígitos, incluidos los ceros a la izquierda.

    Si el valor está en formato DBCS (juego de caracteres de doble byte), SQL Server lo convertirá a Unicode.

    Se deben habilitar recursos, como los separadores de palabras y lematizadores, para el idioma especificado como language_term. Si estos recursos no admiten el idioma especificado, SQL Server devuelve un error.

    Para las columnas no BLOB y no XML que contienen datos de texto en varios idiomas o en los casos en que se desconoce el idioma del texto almacenado en la columna, utilice el recurso de idioma neutro (0x0). Para los documentos almacenados en columnas de tipo XML o BLOB, la codificación de idioma del documento se utilizará en el momento de la indización. Por ejemplo, en las columnas XML, el atributo xml:lang de los documentos XML identifica el idioma. En el momento de la consulta, el valor especificado previamente en language_term se convierte en el idioma predeterminado que se utiliza para consultas de texto a menos que language_term se especifique como parte de una consulta de texto.

  • [ ,...n]
    Indica que se pueden especificar varias columnas para las cláusulas ADD o DROP. Si se especifican varias columnas, sepárelas con comas.
  • WITH NO POPULATION
    Especifica que el índice de texto no se llenará después de las operaciones de columna ADD y DROP. El índice se llenará sólo si el usuario ejecuta un comando START...POPULATION.

    Si CHANGE_TRACKING está habilitado y se especifica WITH NO POPULATION, SQL Server devuelve un error. Si CHANGE_TRACKING está habilitado y no se especifica WITH NO POPULATION, SQL Server realiza un llenado completo del índice después de crearlo.

    La opción NO POPULATION se puede utilizar sólo si CHANGE_TRACKING es OFF. Si se especifica NO POPULATION, SQL Server no llena el índice tras su creación. El índice se llena sólo cuando el usuario utiliza un comando ALTER FULLTEXT INDEX...START POPULATION. Si no se especifica NO POPULATION, SQL Server llena el índice tras su creación.

  • START {FULL|INCREMENTAL|UPDATE} POPULATION
    Indica a SQL Server que comience el llenado del índice de texto de table_name. Si ya hay un llenado de índice de texto en curso, SQL Server devuelve una advertencia y no inicia un nuevo llenado.
    • FULL
      Especifica que se recuperarán todas las filas de la tabla para el indizado de texto, incluso si las filas ya se han indizado.
    • INCREMENTAL
      Especifica que sólo se recuperarán para el índice de texto las filas modificadas desde el último llenado. INCREMENTAL se puede aplicar únicamente si la tabla tiene una columna de tipo timestamp. Si una tabla del catálogo de texto no contiene una columna de tipo timestamp, se realiza un llenado completo de la tabla.
    • UPDATE
      Especifica el procesamiento de todas las inserciones, actualizaciones o eliminaciones desde la última vez que se actualizó el índice de seguimiento de cambios. Debe estar habilitado el llenado de seguimiento de cambios en la tabla, pero el índice de actualización en segundo plano o el seguimiento automático de cambios no se deben activar.
  • {STOP | PAUSE | RESUME } POPULATION
    Detiene o pausa cualquier operación de llenado en curso; o bien detiene o reanuda cualquier operación de llenado en pausa.

    STOP POPULATION no detiene el seguimiento automático de cambios ni el índice de actualización en segundo plano. Para detener el seguimiento de cambios, utilice SET CHANGE_TRACKING OFF.

    PAUSE POPULATION y RESUME POPULATION sólo se pueden utilizar para operaciones de llenado completas. No son relevantes para otros tipos de operación de llenado porque las otras operaciones de llenado reanudan los rastreos desde el punto en que se detuvieron.

Notas

Cuando se indizan instancias con datos del tipo xml para una búsqueda de texto, los atributos y los nombres de elemento no se indizan y no se pueden consultar; no obstante, los valores de elemento sí se pueden indizar y consultar en cada instancia. Se admiten fragmentos y documentos con formato XML correcto que contengan varios idiomas.

Permisos

El usuario debe tener el permiso ALTER o ser miembro de la función fija de servidor sysadmin o de las funciones fijas de base de datos db_ddladmin o db_owner.

Ejemplos

Los ejemplos siguientes modifican el índice de texto de la tabla JobCandidate de la base de datos AdventureWorks.

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

Vea también

Referencia

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

Otros recursos

Búsqueda de texto

Ayuda e información

Obtener ayuda sobre SQL Server 2005

Historial de cambios

Versión Historial

12 de diciembre de 2006

Contenido nuevo:
  • Se agregaron las opciones PAUSE | RESUME POPULATION a la sintaxis.