ALTER FULLTEXT CATALOG (Transact-SQL)

适用于:SQL ServerAzure SQL 数据库Azure SQL 托管实例

更改全文目录的属性。

Transact-SQL 语法约定

语法

ALTER FULLTEXT CATALOG catalog_name   
{ REBUILD [ WITH ACCENT_SENSITIVITY = { ON | OFF } ]  
| REORGANIZE  
| AS DEFAULT   
}  

注意

若要查看 SQL Server 2014 (12.x) 及更早版本的 Transact-SQL 语法,请参阅早期版本文档

自变量

catalog_name
指定要修改的目录的名称。 如果具有指定名称的目录不存在,则 Microsoft SQL Server 返回错误,并且不执行 ALTER 操作。

REBUILD
告知 SQL Server 重新生成整个目录。 重新生成目录时,将删除现有目录,并在其原位置创建一个新目录。 具有全文索引引用的所有表都与此新目录相关联。 重新生成会重置数据库系统表中的全文元数据。

WITH ACCENT_SENSITIVITY = {ON|OFF}
指定要更改的全文索引和查询的目录是区分重音的,还是不区分重音的。

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

目录和数据库的默认重音区分设置是相同的。

REORGANIZE
告知 SQL Server 执行“主合并”,以将在索引进程中创建的各个较小的索引合并成一个大型索引。 合并全文索引碎片可以提高性能,并释放磁盘和内存资源。 如果全文目录频繁发生更改,则请定期使用该命令重新组织全文目录。

REORGANIZE 还可以优化内部索引和目录结构。

请注意,根据索引数据的数量,完成主合并操作可能要花费一些时间。 对大量数据进行主合并会创建一个长时间运行的事务,在检查点期间延迟事务日志的截断。 在这种情况下,事务日志可能会在完整恢复模式下显著增长。 作为最佳实践,在使用完整恢复模式的数据库中重新组织较大的全文索引之前,应确保事务日志中包含足够的空间用于长时间运行的事务。 有关详细信息,请参阅 管理事务日志文件的大小

AS DEFAULT
指定此目录为默认目录。 如果创建全文索引时没有指定目录,则将使用默认目录。 如果存在默认全文目录,则以 AS DEFAULT 设置该目录将覆盖现有默认设置。

权限

用户必须对全文目录具有 ALTER 权限,或者是 db_owner、db_ddladmin 固定数据库角色或 sysadmin 固定服务器角色的成员

备注

若要使用 ALTER FULLTEXT CATALOG AS DEFAULT,用户必须对全文目录具有 ALTER 权限,对数据库具有 CREATE FULLTEXT CATALOG 权限。

示例

下面的示例更改默认全文目录 accentsensitivity(区分重音)的 ftCatalog 属性。

--Change to accent insensitive  
USE AdventureWorks2022;  
GO  
ALTER FULLTEXT CATALOG ftCatalog   
REBUILD WITH ACCENT_SENSITIVITY=OFF;  
GO  
-- Check Accentsensitivity  
SELECT FULLTEXTCATALOGPROPERTY('ftCatalog', 'accentsensitivity');  
GO  
--Returned 0, which means the catalog is not accent sensitive.  

另请参阅

sys.fulltext_catalogs (Transact-SQL)
CREATE FULLTEXT CATALOG (Transact-SQL)
DROP FULLTEXT CATALOG (Transact-SQL)
全文搜索