sp_fulltext_catalog (Transact-SQL)

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

ms189801.note(es-es,SQL.90).gifImportante:
El procedimiento almacenado sp_fulltext_catalog se quitará en una versión futura de SQL Server. Evite usar esta característica en los nuevos trabajos de desarrollo y piense en modificar las aplicaciones que la usan actualmente. 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, DROP FULLTEXT CATALOG.

Icono de vínculo a temas Convenciones de sintaxis de Transact-SQL


sp_fulltext_catalog [ @ftcat= ] 'fulltext_catalog_name' , 
     [ @action= ] 'action' 
     [ , [ @path= ] 'root_directory' ] 

[ @ftcat=] 'fulltext_catalog_name'

Es el nombre del catálogo de texto. Los nombres de catálogo deben ser únicos en cada base de datos. fulltext_catalog_name es de tipo sysname.

[ @action=] 'action'

Se trata de la acción que se va a realizar. action es de tipo varchar(20) y puede tener uno de los valores siguientes.

ms189801.note(es-es,SQL.90).gifNota:
Los catálogos de texto se pueden crear, quitar o modificar como precise. No obstante, evite realizar cambios de esquema en varios catálogos al mismo tiempo. Es posible efectuar estas acciones mediante el procedimiento almacenado sp_fulltext_table, que es el método recomendado.

Valor Descripción

Create

Crea un nuevo catálogo de texto vacío en el sistema de archivos y agrega una fila asociada en sysfulltextcatalogs con los valores fulltext_catalog_name y root_directory (si están presentes). fulltext_catalog_name debe ser único en la base de datos.

Drop

Quita fulltext_catalog_name al eliminarlo del sistema de archivos y al eliminar la fila asociada en sysfulltextcatalogs. Esta acción genera un error si el catálogo contiene índices de una o más tablas. Ejecute sp_fulltext_table 'table_name', 'drop' para quitar las tablas del catálogo.

Se muestra un error si el catálogo no existe.

start_incremental

Inicia el llenado incremental de fulltext_catalog_name. Se muestra un error si el catálogo no existe. Si ya hay un llenado de índices de texto activo, se muestra una advertencia y no se produce el llenado. En el llenado incremental, sólo las filas modificadas se recuperan para la indización de texto, siempre y cuando esté presente la columna timestamp en la tabla cuyo texto se está indizando.

start_full

Inicia un llenado completo de fulltext_catalog_name. 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 el llenado de índices de fulltext_catalog_name. Se muestra un error si el catálogo no existe. No se muestra una advertencia si el llenado ya se ha detenido.

Rebuild

Vuelve a generar fulltext_catalog_name; para ello elimina el catálogo de texto existente del sistema de archivos, vuelve a crear el catálogo de texto y vuelve a asociarlo con todas las tablas que tienen referencias de índices de texto.

Al volver a generar no cambian los metadatos de texto de las tablas de sistema de la base de datos, ni se vuelve a llenar el catálogo de texto recién creado. Para volver a realizar el llenado, ejecute sp_fulltext_catalog con la acción start_full o start_incremental.

[ @path=] 'root_directory'

Es el directorio raíz (no la ruta de acceso física completa) de una acción create. root_directory es de tipo nvarchar(100) y su valor predeterminado es NULL, que indica que se tiene que utilizar la ubicación predeterminada especificada al realizar la instalación. Es el subdirectorio Ftdata del directorio Mssql; por ejemplo, C:\Archivos de programa\Microsoft SQL Server\MSSQL.1\MSSQL\FTData. El directorio raíz especificado debe existir, residir en una unidad en el mismo equipo, constar de más datos que sólo la letra de unidad y no puede ser una ruta de acceso relativa. No se admiten las unidades de red, discos extraíbles, disquetes y rutas de acceso UNC. Los catálogos de texto se deben crear en una unidad de disco duro local asociada con una instancia de SQL Server.

@path sólo es válido cuando action es create. Para acciones distintas a create (stop, rebuild, etc.), @path debe ser NULL o se debe omitir.

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

La acción start_full se utiliza para crear una instantánea completa de los datos de texto de fulltext_catalog_name. La acción start_incremental se utiliza para volver a indizar sólo las filas modificadas de la base de datos. El llenado incremental sólo puede aplicarse 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 lleva a cabo un llenado completo en la tabla.

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

El autor de la llamada debe ser miembro de la función db_owner. Según la acción solicitada, al autor de la llamada no se le deben denegar los permisos ALTER o CONTROL (que db_owner tiene) en el catálogo de texto de destino.

0 (correcto) o 1 (error)

A. Crear un catálogo de texto

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

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

B. Volver a generar un catálogo de texto

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

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

C. Iniciar el llenado de un catálogo de texto

En este ejemplo comienza el llenado completo del catálogo Cat_Desc.

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

C. Detener el llenado de un catálogo de texto

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

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

E. Quitar un catálogo de texto

En este ejemplo se quita el catálogo Cat_Desc.

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

Adiciones de comunidad

AGREGAR
Mostrar: