CREATE FULLTEXT CATALOG (Transact-SQL)

Crea un catálogo de texto para una base de datos. Un catálogo de texto puede tener varios índices de texto, pero un índice de texto sólo puede pertenecer a un catálogo de texto. Cada base de datos puede contener varios catálogos de texto o ninguno.

No es posible crear catálogos de texto en las bases de datos master, model ni tempdb.

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

Sintaxis

CREATE FULLTEXT CATALOG catalog_name
     [ON FILEGROUP filegroup ]
     [IN PATH 'rootpath']
     [WITH <catalog_option>]
     [AS DEFAULT]
     [AUTHORIZATION owner_name ]

<catalog_option>::=
     ACCENT_SENSITIVITY = {ON|OFF}

Argumentos

  • catalog_name
    Es el nombre del catálogo nuevo. El nombre del catálogo debe ser único en la base de datos actual. El nombre del archivo que corresponde al catálogo de texto (vea ON FILEGROUP) también debe ser único en la base de datos. Si la base de datos ya contiene un catálogo con el mismo nombre, SQL Server generará un error.

    La longitud del nombre del catálogo no puede superar los 120 caracteres.

  • ON FILEGROUP 'filegroup'
    Es el nombre del grupo de archivos de SQL Server al que pertenecerá el nuevo catálogo. Si no se especifica el grupo de archivos, el nuevo catálogo formará parte del grupo de archivos predeterminado que se utilice para todos los catálogos de texto. El grupo de archivos de texto predeterminado es el grupo de archivos principal para la base de datos. Es recomendable colocar los catálogos de texto en un grupo de archivos secundario. Esto permite realizar operaciones de copia de seguridad y restauración de grupos de archivos en catálogos de texto independientemente de los archivos de datos y de registro. Además, al colocar los catálogos de texto en un grupo de archivos secundario, se puede restaurar un catálogo de texto en línea.

    El grupo de archivos en el que se crea el catálogo de texto debe contener al menos un archivo de datos disponible, que se utiliza para estructuras internas que forman parte del catálogo de texto. Este archivo, almacenado en SQL Server, no debe marcarse como OFFLINE ni READONLY.

    Los catálogos incluidos en un grupo de archivos reciben el mismo tratamiento que los archivos y sus ubicaciones físicas vienen indicadas por la ruta de acceso de sys.master_files. El nombre del archivo creado para cada catálogo de texto consiste en una combinación de sysft_ y el nombre del catálogo. Por ejemplo, si el nombre del catálogo es catname, el nombre del archivo correspondiente a ese catálogo sería sysft_catname.

  • IN PATH 'rootpath'
    Es el directorio raíz del catálogo. Si no se especifica ningún valor para rootpath, el nuevo catálogo se ubicará en el directorio predeterminado que se haya especificado durante la instalación.

    Los catálogos de texto deben crearse en una unidad de disco duro local asociada a una instancia de SQL Server. rootpath no puede ser una ruta de acceso relativa; debe residir en una unidad del mismo equipo. Aunque es posible especificar la ruta de acceso de una unidad (por ejemplo, 'C:\') como la ubicación de un catálogo de texto, no es recomendable. No se admiten rutas de acceso en unidades de red, unidades extraíbles, disquetes ni rutas UNC (Convención de nomenclatura universal). En un entorno de clúster de conmutación por error, la ruta de acceso debe encontrarse en un disco compartido del que dependa el recurso SQL Server.

    Si se especifica una ruta de acceso incorrecta para un nombre de catálogo de texto existente, SQL Server genera un error y no crea el catálogo de texto. Si el valor de rootpath no existe, SQL Server genera un error indicando que la ruta de acceso no existe.

    Para realizar copias de seguridad, restauraciones y recuperaciones diferenciales de catálogos de texto, éstos deben estar almacenados en un directorio que forme parte de un sistema de archivos NTFS. Las copias de seguridad, restauraciones y recuperaciones diferenciales no son compatibles con sistemas de archivos que no sean NTFS.

    El catálogo de texto se creará como un directorio en la ruta de acceso raíz especificada; el nombre del directorio será el nombre del catálogo de texto. Si ya hay un directorio con el mismo nombre que el catálogo, se anexará un sufijo al nombre del catálogo y se creará un directorio con ese nombre.

    No cree catálogos de texto en la raíz de una unidad como, por ejemplo, c:\.

  • ACCENT_SENSITIVITY = {ON|OFF}
    Especifica si el catálogo distingue los acentos para la indización de texto. Cuando se cambia esta propiedad, el índice debe volver a crearse. La opción predeterminada es utilizar la distinción de acentos que se haya especificado en la intercalación de base de datos. Para mostrar la intercalación de base de datos, utilice la vista de catálogo sys.databases.

    Para determinar la configuración de la propiedad de distinción de acentos actual de un catálogo de texto, utilice la función FULLTEXTCATALOGPROPERTY con el valor de propiedad accentsensitivity en catalog_name. Si el valor devuelto es '1', el catálogo de texto distingue acentos; si el valor es '0', el catálogo no distingue acentos.

  • AS DEFAULT
    Especifica que el catálogo es el predeterminado. Cuando se crean índices de texto sin especificar de forma explícita un catálogo de texto, se utiliza el catálogo predeterminado. Si un catálogo de texto existente ya se ha marcado como AS DEFAULT, configurar este nuevo catálogo como AS DEFAULT lo convertirá en el catálogo de texto predeterminado.
  • AUTHORIZATION owner_name
    Establece el propietario del catálogo de texto en el nombre de un usuario o una función de base de datos. Si owner_name es una función, debe ser el nombre de una función a la que pertenezca el usuario actual, o bien el usuario que ejecute la instrucción debe ser el propietario de la base de datos o el administrador del sistema.

    Si owner_name es un nombre de usuario, éste debe ser uno de los siguientes:

    • El nombre del usuario que ejecuta la instrucción.
    • El nombre de un usuario para el que el usuario que está ejecutando el comando tiene permisos de suplantación.
    • O bien, el usuario que ejecuta el comando debe ser el propietario de la base de datos o el administrador del sistema.

    owner_name también debe tener el permiso TAKE OWNERSHIP en el catálogo de texto especificado.

Permisos

El usuario debe tener el permiso CREATE FULLTEXT CATALOG en la base de datos o ser miembro de las funciones fijas de base de datos db_owner o db_ddladmin.

Ejemplos

En el ejemplo siguiente se crea un catálogo de texto y un índice de texto.

USE AdventureWorks;
GO
CREATE FULLTEXT CATALOG ftCatalog AS DEFAULT;
GO
CREATE FULLTEXT INDEX ON HumanResources.JobCandidate(Resume) KEY INDEX PK_JobCandidate_JobCandidateID;
GO

Vea también

Referencia

ALTER FULLTEXT CATALOG (Transact-SQL)
DROP FULLTEXT CATALOG (Transact-SQL)

Otros recursos

Búsqueda de texto
Nuevo catálogo de texto (página General)

Ayuda e información

Obtener ayuda sobre SQL Server 2005