Compartir a través de


sp_fulltext_table (Transact-SQL)

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

ms187960.note(es-es,SQL.90).gifImportante:
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. En su lugar, utilice las nuevas instrucciones de lenguaje de definición de datos (DDL) de texto. Para obtener más información, vea los temas CREATE, ALTER y DROP FULLTEXT INDEX.

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 para la tabla a la que hace referencia qualified_table_name y especifica que los datos del índice de texto 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. 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 para 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 para 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 llena el índice de texto; simplemente se registra la tabla en el catálogo de texto del sistema de archivos para que se puedan recuperar filas de qualified_table_name en el siguiente llenado de índices de texto.

Deactivate

Desactiva el índice de texto de qualified_table_name para que ya no se puedan recopilar datos de índice de texto para 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 fecha y hora, 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.

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 Microsoft SQL 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, cambiar el tipo de datos de la columna de clave única de texto a otro, bien cambiando el tipo de datos de la columna o cambiando la clave única de texto 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.

Valores de código de retorno

0 (correcto) o 1 (error)

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

Vea también

Referencia

INDEXPROPERTY (Transact-SQL)
OBJECTPROPERTY (Transact-SQL)
sp_help_fulltext_tables (Transact-SQL)
sp_help_fulltext_tables_cursor (Transact-SQL)
sp_helpindex (Transact-SQL)
Procedimientos almacenados del sistema (Transact-SQL)
Procedimientos almacenados de la búsqueda de texto (Transact-SQL)

Ayuda e información

Obtener ayuda sobre SQL Server 2005