Compartir vía


sp_fulltext_catalog (Transact-SQL)

Se aplica a: SQL Server Azure SQL Database Azure SQL Managed Instance

Crea y quita un catálogo de texto completo, e inicia y detiene la acción de indización de un catálogo. Se pueden crear varios catálogos de texto completo en cada base de datos.

Importante

Esta característica se quitará en una versión futura de 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 CATALOG, ALTER FULLTEXT CATALOG y DROP FULLTEXT CATALOG en su lugar.

Convenciones de sintaxis de Transact-SQL

Sintaxis

sp_fulltext_catalog
    [ @ftcat = ] N'ftcat'
    , [ @action = ] 'action'
    [ , [ @path = ] N'path' ]
[ ; ]

Argumentos

[ @ftcat = ] N'ftcat'

Nombre del catálogo de texto completo. Los nombres de catálogo deben ser únicos en cada base de datos. @ftcat es sysname, sin ningún valor predeterminado.

[ @action = ] 'action'

Acción que se va a realizar. @action es varchar(20) y puede ser uno de estos valores.

Nota:

Los catálogos de texto completo se pueden crear, quitar o modificar como precise. No obstante, evite realizar cambios de esquema en varios catálogos al mismo tiempo. Estas acciones se pueden realizar mediante el sp_fulltext_table procedimiento almacenado, que es la manera recomendada.

Valor Descripción
create Crea un catálogo de texto completo vacío y nuevo en el sistema de archivos y agrega una fila asociada a sysfulltextcatalogs la @ftcat y @path, si existe, valores. @ftcat debe ser único dentro de la base de datos.
anular Quita @ftcat quitando del sistema de archivos y eliminando la fila asociada en sysfulltextcatalogs. Esta acción genera un error si el catálogo contiene índices de una o más tablas. sp_fulltext_table '<table_name>', 'drop' debe ejecutarse para quitar las tablas del catálogo.

Se muestra un error si el catálogo no existe.
start_incremental Inicia un rellenado incremental para @ftcat. Se muestra un error si el catálogo no existe. Si ya hay un rellenado de índices de texto completo activo, se muestra una advertencia y no se produce el rellenado. Con el rellenado incremental solo se recuperan filas modificadas para la indexación de texto completo, siempre que haya una columna de marca de tiempo presente en la tabla que está indexada de texto completo.
start_full Inicia un rellenado completo para @ftcat. Se recupera cada una de las filas de todas las tablas asociadas con este catálogo de texto para realizar la indización de texto, aunque ya se hayan indizado.
stop Detiene un rellenado de índices para @ftcat. Se muestra un error si el catálogo no existe. No se muestra ninguna advertencia si el rellenado ya se ha detenido.
rebuild Vuelve a generar @ftcat. Cuando vuelve a generarse un catálogo, el catálogo existente se elimina y se crea uno nuevo en su lugar. Todas las tablas que tienen referencias de índices de texto completo se asocian al catálogo nuevo. La regeneración restablece los metadatos de texto completo de las tablas del sistema de la base de datos.

Si el seguimiento de cambios es OFF, la recompilación no provoca una repoblación del catálogo de texto completo recién creado. En este caso, para volver a rellenar, ejecute sp_fulltext_catalog con la acción start_full o start_incremental .

[ @path = ] N'path'

Directorio raíz (no la ruta de acceso física completa) para una acción de creación . @path es nvarchar(100), con un valor predeterminado de NULL, que indica el uso de la ubicación predeterminada especificada en la instalación.

Este es el FTData subdirectorio del MSSQL directorio; por ejemplo, C:\Program Files\Microsoft SQL Server\MSSQL16.MSSQLSERVER\MSSQL\FTData. El directorio raíz especificado debe residir en una unidad del mismo equipo, constar de más de la letra de unidad y no puede ser una ruta de acceso relativa. No se admiten las unidades de red, las unidades extraíbles, los discos disquete ni las rutas de acceso UNC. Los catálogos de texto completo deben crearse en un disco duro local asociado a una instancia de SQL Server.

@path solo es válido cuando se crea @action. En el caso de las acciones que no sean crear (detener, recompilar, etc.), @path debe ser o omitirseNULL.

Si la instancia de SQL Server es un servidor virtual de un clúster, el directorio de catálogo especificado debe estar en una unidad de disco compartido en la que depende el recurso de SQL Server. Si no se especifica @path , la ubicación del directorio de catálogo predeterminado se encuentra en la unidad de disco compartido, en el directorio que se especificó cuando se instaló el servidor virtual.

Valores de código de retorno

0 (correcto) o 1 (erróneo).

Conjunto de resultados

Ninguno.

Comentarios

La acción start_full se usa para crear una instantánea completa de los datos de texto completo en @ftcat. La acción start_incremental se usa para volver a indexar solo las filas modificadas de la base de datos. El rellenado incremental solo se puede aplicar si la tabla tiene una columna del tipo timestamp. Si una tabla del catálogo de texto completo no contiene una columna del tipo timestamp, la tabla se somete a un rellenado completo.

Los datos del catálogo de texto completo y del índice se almacenan en archivos creados en un directorio de catálogos de texto completo. El directorio de catálogo de texto completo se crea como subdirectorio del directorio especificado en @path o en el directorio de catálogo de texto completo predeterminado del servidor si no se especifica @path . El nombre del directorio de catálogo de texto completo se crea de forma que garantiza que es único en el servidor. Por lo tanto, todos los directorios de catálogos de texto completo de un servidor pueden compartir la misma ruta de acceso.

Permisos

El autor de la llamada debe ser miembro del rol de db_owner . En función de la acción solicitada, el autor de la llamada no debe denegar los permisos ALTER o CONTROL (que db_owner tiene) en el catálogo de texto completo de destino.

Ejemplos

A Crear un catálogo de texto completo

En este ejemplo se crea un catálogo de texto completo vacío, Cat_Desc, en la AdventureWorks2022 base de datos.

USE AdventureWorks2022;
GO
EXEC sp_fulltext_catalog 'Cat_Desc', 'create';
GO

B. Regenerar un catálogo de texto completo

En este ejemplo se vuelve a generar un catálogo de texto completo existente, Cat_Desc, en la AdventureWorks2022 base de datos.

USE AdventureWorks2022;
GO
EXEC sp_fulltext_catalog 'Cat_Desc', 'rebuild';
GO

C. Iniciar el rellenado de un catálogo de texto completo

En este ejemplo se inicia un rellenado completo del Cat_Desc catálogo.

USE AdventureWorks2022;
GO
EXEC sp_fulltext_catalog 'Cat_Desc', 'start_full';
GO

D. Detener el rellenado de un catálogo de texto completo

En este ejemplo se detiene el rellenado del Cat_Desc catálogo.

USE AdventureWorks2022;
GO
EXEC sp_fulltext_catalog 'Cat_Desc', 'stop';
GO

E. Quitar un catálogo de texto completo

En este ejemplo se quita el Cat_Desc catálogo.

USE AdventureWorks2022;
GO
EXEC sp_fulltext_catalog 'Cat_Desc', 'drop';
GO