CREATE FULLTEXT CATALOG (Transact-SQL)

为数据库创建全文目录。一个全文目录可以包含多个全文索引,但一个全文索引只能用于构成一个全文目录。每个数据库可以不包含全文目录或包含多个全文目录。

不能在 mastermodeltempdb 数据库中创建全文目录。

主题链接图标Transact-SQL 语法约定

语法

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}

参数

  • catalog_name
    新目录的名称。在当前数据库的所有目录名中,该目录名必须唯一。与全文目录对应的文件名(请参阅 ON FILEGROUP)在数据库的所有文件中也必须唯一。如果该目录名已用于数据库中的其他目录,则 SQL Server 将返回错误。

    目录名的长度不能超过 120 个字符。

  • ON FILEGROUP 'filegroup'
    包含新目录的 SQL Server 文件组的名称。如果未指定文件组,则新目录将包含在用于所有全文目录的默认文件组中。默认全文文件组是数据库的主文件组。建议将全文目录置于辅助文件组中。这样,即可独立于数据和日志文件执行文件组的全文目录备份和还原操作。另外,将全文目录置于辅助文件组中还可以还原在线全文目录。

    在其中创建全文目录的文件组必须包含至少一个可访问的数据文件,该文件用于构成全文目录的内部结构。该文件存储在 SQL Server 中,不能将其标记为 OFFLINE 或 READONLY。

    文件组中的目录可视作文件,它们的物理位置由 sys.master_files 中的路径指示。为每个全文目录创建的文件的名称由 sysft_ 和目录名组成。例如,如果目录名为 catname,则与该目录相对应的文件的名称应为 sysft_catname

  • IN PATH 'rootpath'
    该目录的根目录。如果未指定 rootpath,则新目录将位于安装时指定的默认目录下。

    必须在与 SQL Server 实例关联的本地硬盘驱动器上创建全文目录。rootpath 不能是相对路径;它必须位于同一台计算机的驱动器上。尽管可以将驱动器的根目录(例如,“C:\”)指定为全文目录的位置,但建议不要这样做。不支持使用网络驱动器、可移动驱动器、软盘和通用命名约定 (UNC) 路径。在故障转移群集环境中,该路径必须位于 SQL Server 资源所依赖的共享磁盘上。

    如果为现有的全文目录名指定的路径不正确,SQL Server 将返回错误,并且不会创建全文目录。如果指定的 rootpath 不存在,SQL Server 将返回一个错误,指出该路径不存在。

    若要使全文目录能够进行差异备份、还原和恢复,必须将全文目录存储在属于 NTFS 文件系统的目录中。非 NTFS 文件系统不支持差异备份、还原和恢复。

    全文目录将创建为指定根路径中的目录;该目录名将成为全文目录的名称。如果已存在与该目录名称相同的目录,系统将为该目录的名称追加一个后缀,然后用这个名称创建一个新目录。

    不要在驱动器的根目录(如 c:\)中创建全文目录。

  • ACCENT_SENSITIVITY = {ON|OFF}
    指定该目录的全文索引是否区分重音。在更改此属性后,必须重新生成索引。默认情况下,将使用数据库排序规则中所指定的区分重音设置。若要显示数据库排序规则,请使用 sys.databases 目录视图。

    若要确定全文目录当前的区分重音属性的设置,请对 catalog_name 使用具有 accentsensitivity 属性值的 FULLTEXTCATALOGPROPERTY 函数。如果返回值为“1”,则全文目录区分重音;如果该值为“0”,则该目录不区分重音。

  • AS DEFAULT
    指定该目录为默认目录。如果在未显式指定全文目录的情况下创建全文索引,则将使用默认目录。如果现有全文目录已标记为 AS DEFAULT,则将新目录设置为 AS DEFAULT 将使该目录成为默认全文目录。
  • AUTHORIZATION owner_name
    将全文目录的所有者设置为数据库用户名或角色的名称。如果 owner_name 是角色,则该角色必须是当前用户所属角色的名称,或者运行语句的用户必须是数据库所有者或系统管理员。

    如果 owner_name 是用户名,则该用户名必须是下列名称之一:

    • 运行语句的用户的名称。
    • 执行命令的用户拥有其模拟权限的用户的名称。
    • 或者,执行命令的用户必须是数据库所有者或系统管理员。

    owner_name 还必须拥有对指定全文目录的 TAKE OWNERSHIP 权限。

权限

用户必须对数据库具有 CREATE FULLTEXT CATALOG 权限,或者是 db_ownerdb_ddladmin 固定数据库角色的成员。

示例

以下示例将创建一个全文目录和一个全文索引。

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

请参阅

参考

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

其他资源

全文搜索
新建全文目录(“常规”页)

帮助和信息

获取 SQL Server 2005 帮助