Share via


sp_fulltext_table (Transact-SQL)

Marca o quita la marca de una tabla para la indización de texto.

Nota importanteImportante

Esta característica se quitará en una versión futura de Microsoft SQL Server. Evite utilizar esta característica en nuevos trabajos de desarrollo y tenga previsto modificar las aplicaciones que actualmente la utilizan. Use CREATE FULLTEXT INDEX, ALTER FULLTEXT INDEXy DROP FULLTEXT INDEX en su lugar.

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

Sintaxis

sp_fulltext_table 
   [ @tabname= ] 'qualified_table_name'         
      , [ @action= ] 'action' 
   [ 
      , [ @ftcat= ] 'fulltext_catalog_name'         
      , [ @keyname= ] 'unique_index_name' 
   ]

Argumentos

  • [ [ @tabname=] 'qualified_table_name'
    Se trata de un nombre de tabla con una o dos partes. La tabla debe existir en la base de datos actual. qualified_table_name es de tipo nvarchar(517) y no tiene ningún valor predeterminado.

  • [ [ @action=] 'action'
    Se trata de la acción que se va a realizar. action es de tipo nvarchar(50), sin valor predeterminado, y puede tener uno de los valores siguientes.

    Valor

    Descripción

    Create

    Crea los metadatos de un índice de texto completo para la tabla a la que hace referencia qualified_table_name y especifica que los datos del índice de texto completo de esta tabla deben residir en fulltext_catalog_name. Esta acción también designa el uso de unique_index_name como la columna de clave de texto completo. Este índice único ya debe estar presente y debe estar definido en una columna de la tabla.

    No se puede realizar ninguna búsqueda de texto sobre esta tabla hasta que se llene el catálogo de texto.

    Drop

    Quita los metadatos del índice de texto completo de qualified_table_name. Si el índice de texto está activo, se desactiva automáticamente antes de quitarlo. No es necesario quitar columnas antes de quitar el índice de texto.

    Activate

    Activa la capacidad de recopilar datos de índice de texto completo de qualified_table_name, después de que se haya desactivado. Debe haber al menos una columna que participe en el índice de texto antes de que se pueda activar.

    Un índice de texto se convierte automáticamente en activo para su llenado en el momento en que se agrega la primera columna para la indización. Si se quita la última columna del índice, éste se desactiva. Si está en proceso un seguimiento de cambios, al activar un índice inactivo se inicia otro llenado.

    Tenga en cuenta que, en realidad, no se rellena el índice de texto completo; simplemente se registra la tabla en el catálogo de texto completo del sistema de archivos para que se puedan recuperar filas de qualified_table_name en el siguiente rellenado de índices de texto completo.

    Deactivate

    Desactiva el índice de texto completo de qualified_table_name para que ya no se puedan recopilar datos de índice de texto completo de qualified_table_name. Los metadatos del índice de texto permanecen y se puede volver a activar la tabla.

    Si está activo el seguimiento de cambios, desactivar un índice activo inmoviliza el estado del índice: se detiene cualquier llenado en curso y no se propagan más cambios al índice.

    start_change_tracking

    Inicia un llenado incremental del índice de texto. Si la tabla no incluye marca de tiempo, inicia un llenado completo del índice de texto. Inicia un seguimiento de cambios en la tabla.

    El seguimiento de cambios de texto no realiza ningún seguimiento de operaciones WRITETEXT o UPDATETEXT realizadas en columnas que se han incluido en un índice de texto y que son de tipo image, text o ntext.

    stop_change_tracking

    Detiene el seguimiento de cambios en la tabla.

    update_index

    Propaga el conjunto actual de cambios de los que se ha realizado el seguimiento al índice de texto.

    start_background_updateindex

    Comienza a propagar los cambios de los que se ha realizado el seguimiento al índice de texto mientras se producen.

    stop_background_updateindex

    Detiene la propagación de los cambios de los que se ha realizado el seguimiento al índice de texto mientras se producen.

    start_full

    Inicia un llenado completo del índice de texto de la tabla.

    start_incremental

    Inicia un llenado incremental del índice de texto de la tabla.

    Stop

    Detiene un llenado completo o incremental.

  • [ [ @ftcat=] 'fulltext_catalog_name'
    Nombre de catálogo de texto existente válido para una acción create. Para todas las demás acciones, este parámetro debe ser NULL. fulltext_catalog_name es de tipo sysname y su valor predeterminado es NULL.

  • [ [ @keyname=] 'unique_index_name'
    Índice válido y único, que no admite valores NULL, de una columna de una sola clave en qualified_table_name para una acción create. Para todas las demás acciones, este parámetro debe ser NULL. unique_index_name es de tipo sysname y su valor predeterminado es NULL.

Valores de código de retorno

0 (correcto) o 1 (error)

Conjuntos de resultados

Ninguno

Notas

Una vez que se desactiva un índice de texto para una tabla determinada, el índice de texto existente permanece vigente hasta que se produce el siguiente llenado; sin embargo, este índice no se utiliza debido a que MicrosoftSQL Server bloquea las consultas que se realizan sobre tablas desactivadas.

Si se vuelve a activar la tabla y no se vuelve a llenar el índice, el índice antiguo sigue disponible para las consultas que se realizan sobre las columnas restantes habilitadas para texto, pero no sobre las nuevas. Las consultas que especifican una búsqueda en todas las columnas de texto encuentran datos de columnas eliminadas.

Tras definir una tabla para indización de texto completo, la modificación del tipo de datos de la columna de clave única de texto completo a otro tipo, ya sea mediante la modificación del tipo de datos de la columna o de la clave única de texto completo de una columna a otra, sin volver a realizar un llenado completo, puede dar lugar a que una consulta posterior no se ejecute correctamente y se devuelva el mensaje de error: "Error de conversión al tipo de datos data_type del valor de la clave de búsqueda de texto key_value". Para evitarlo, quite la definición de texto de esta tabla utilizando la acción drop de sp_fulltext_table y cree de nuevo la definición utilizando sp_fulltext_table y sp_fulltext_column.

La columna de clave de texto se debe definir para que tenga 900 bytes o menos. Se recomienda que el tamaño de la columna de clave sea lo más reducido posible por razones de rendimiento.

Permisos

Sólo los miembros de la función fija de servidor sysadmin, las funciones fijas de base de datos db_owner y db_ddladmin o un usuario con el permiso REFERENCE en el catálogo de texto pueden ejecutar sp_fulltext_table.

Ejemplos

A. Habilitar una tabla para la indización de texto

En el ejemplo siguiente se crean metadatos de índice de texto para la tabla Document de la base de datos AdventureWorks. Cat_Desc es un catálogo de texto. PK_Document_DocumentID es un índice único de una sola columna de Document.

USE AdventureWorks;
GO
EXEC sp_fulltext_table 'Production.Document', 'create', 'Cat_Desc', 'PK_Document_DocumentID';
--Add some columns
EXEC sp_fulltext_column 'Production.Document','DocumentSummary','add';
-- Activate the full-text index
EXEC sp_fulltext_table 'Production.Document','activate';
GO

B. Activar y propagar los cambios de los que se ha realizado un seguimiento

En el ejemplo siguiente se activan y comienzan a propagar los cambios de los que se ha hecho un seguimiento al índice de texto mientras se producen.

USE AdventureWorks;
GO
EXEC sp_fulltext_table 'Production.Document', 'Start_change_tracking';
EXEC sp_fulltext_table 'Production.Document', 'Start_background_updateindex';
GO

C. Quitar un índice de texto.

En este ejemplo se quitan los metadatos de índice de texto de la tabla Document de la base de datos AdventureWorks.

USE AdventureWorks;
GO
EXEC sp_fulltext_table 'Production.Document', 'drop';
GO