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.
Importante |
---|
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 CATALOG, ALTER FULLTEXT CATALOG y DROP FULLTEXT CATALOG en su lugar. |
Sintaxis
sp_fulltext_catalog [ @ftcat= ] 'fulltext_catalog_name' ,
[ @action= ] 'action'
[ , [ @path= ] 'root_directory' ]
Argumentos
[ @ftcat=] 'fulltext_catalog_name'
Es el nombre del catálogo de texto completo. 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.[!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. 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 completo 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 rellenado de índices de texto completo activo, se muestra una advertencia y no se produce el rellenado. En el rellenado incremental, solamente las filas modificadas se recuperan para la indización de texto completo, siempre y cuando la tabla cuyo texto completo se está indizando tenga una columna de tipo timestamp.
start_full
Inicia un rellenado 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 completo, aunque ya se hayan indizado.
Stop
Detiene el rellenado de índices de fulltext_catalog_name. 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 fulltext_catalog_name. 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 está establecido en OFF, la regeneración no hace que se vuelva a rellenar el catálogo de texto completo recién creado. En este caso, para volver a realizar el rellenado, 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\MSSQL10.MSSQLSERVER\Mssql\FTData. El directorio raíz especificado debe existir, residir en una unidad en el mismo equipo, constar de más datos que solo 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 completo deben crearse en una unidad de disco duro local asociada con una instancia de SQL Server.@path solo 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.
Valores de código de retorno
0 (correcto) o 1 (error)
Conjuntos de resultados
Ninguno
Notas
La acción start_full se utiliza para crear una instantánea completa de los datos de texto completo de fulltext_catalog_name. La acción start_incremental se utiliza para volver a indizar solo las filas modificadas de la base de datos. El rellenado incremental solamente puede aplicarse si la tabla tiene una columna de tipo timestamp. Si una tabla del catálogo de texto completo no contiene una columna de tipo timestamp, se lleva a cabo un rellenado completo en la tabla.
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álogos de texto completo se crea como subdirectorio del directorio especificado en @path o en el directorio predeterminado de catálogos de texto completo del servidor si no se especifica @path. El nombre del directorio de catálogos de texto completo se genera de forma que se garantiza que será exclusivo 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 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 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 base de datos AdventureWorks.
USE AdventureWorks;
GO
EXEC sp_fulltext_catalog 'Cat_Desc', 'create';
GO
B. Volver a generar un catálogo de texto completo
En este ejemplo se vuelve a generar un catálogo de texto completo existente, Cat_Desc, en la base de datos AdventureWorks.
USE AdventureWorks;
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álogo Cat_Desc.
USE AdventureWorks;
GO
EXEC sp_fulltext_catalog 'Cat_Desc', 'start_full';
GO
C. Detener el rellenado de un catálogo de texto completo
En este ejemplo se detiene el rellenado del catálogo Cat_Desc.
USE AdventureWorks;
GO
EXEC sp_fulltext_catalog 'Cat_Desc', 'stop';
GO
E. Quitar un catálogo de texto completo
En este ejemplo se quita el catálogo Cat_Desc.
USE AdventureWorks;
GO
EXEC sp_fulltext_catalog 'Cat_Desc', 'drop';
GO
Historial de cambios
Contenido actualizado |
---|
Se ha revisado la descripción de la acción rebuild. |