sp_fulltext_column (Transact-SQL)

指定表的某个特定列是否参与全文索引。

重要说明重要提示

后续版本的 Microsoft SQL Server 将删除该功能。请避免在新的开发工作中使用该功能,并着手修改当前还在使用该功能的应用程序。请改用 ALTER FULLTEXT INDEX

适用范围:SQL Server(SQL Server 2008 到当前版本)。

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

语法

sp_fulltext_column [ @tabname= ] 'qualified_table_name' , 
     [ @colname= ] 'column_name' , 
     [ @action= ] 'action' 
     [ , [ @language= ] 'language_term' ] 
     [ , [ @type_colname= ] 'type_column_name' ]

参数

  • [ @tabname= ] 'qualified_table_name'
    由一部分或两部分组成的表的名称。 表必须在当前数据库中。 表必须具有全文索引。 qualified_table_name 的数据类型为 nvarchar(517),无默认值。

  • [ @colname= ] 'column_name'
    qualified_table_name 中列的名称。 列必须为字符列、varbinary(max) 列或 image 列,不能是计算列。 column_name 的数据类型为 sysname,无默认值。

    备注

    SQL Server 可以为存储在数据类型为 varbinary(max) 或 image 的列中的文本数据创建全文索引。不对图像和图片进行索引。

  • [ @action= ] 'action'
    要执行的操作。 action 的数据类型为 varchar(20),无默认值,可以是下列值之一。

    说明

    add

    将 qualified_table_name 的 column_name 添加到表的不活动全文索引中。 此操作可启用列以进行全文索引。

    drop

    从表的不活动全文索引中删除 qualified_table_name 的 column_name。

  • [ @language= ] 'language_term'
    存储在列中的数据的语言。 有关 SQL Server 包括的语言的列表,请参阅sys.fulltext_languages (Transact-SQL)

    备注

    如果列包含的数据使用了多种语言或不支持的语言,则使用“非特定语言”。默认值通过配置选项“默认全文语言”指定。

  • [ @type_colname = ] 'type_column_name'
    qualified_table_name 中列的名称,用于保存 column_name 的文档类型。 此列必须是 char、nchar、varchar 或 nvarchar。 仅当 column_name 的数据类型为 varbinary(max) 或 image 时才使用该列。 type_column_name 的数据类型为 sysname,无默认值。

返回代码值

0(成功)或 1(失败)

结果集

注释

如果全文索引处于活动状态,则将停止所有正在进行的填充。 而且,如果一个具有活动全文索引的表启用了更改跟踪,SQL Server 会确保索引是当前索引。 例如,SQL Server 停止对表的所有当前填充,删除现有索引,并启动新填充。

如果启用了更改跟踪,并且需要在保留索引的同时从全文索引中添加或删除列,则应停用表并添加或删除所需的列。 这些操作将冻结索引。 如果以后可以开始进行填充了,则可以重新激活表。

权限

用户必须是 db_ddladmin 固定数据库角色的成员,db_owner 固定数据库角色的成员,或表的所有者。

示例

以下示例将 Document 表的 DocumentSummary 列添加到表的全文索引中。

USE AdventureWorks2012;
GO
EXEC sp_fulltext_column 'Production.Document', DocumentSummary, 'add';
GO

以下示例假定已对名为 spanishTbl 的表创建了一个全文索引。 若要将 spanishCol 列添加到全文索引,可执行以下存储过程:

EXEC sp_fulltext_column 'spanishTbl', 'spanishCol', 'add', 0xC0A;
GO

运行此查询时:

SELECT * 
FROM spanishTbl 
WHERE CONTAINS(spanishCol, 'formsof(inflectional, trabajar)')

结果集将包括内含不同形态的 trabajar 一词的行,如 trabajo、trabajamos 和 trabajan。

备注

在单个全文查询函数子句中列出的所有列都必须使用相同的语言。

请参阅

参考

OBJECTPROPERTY (Transact-SQL)

sp_help_fulltext_columns (Transact-SQL)

sp_help_fulltext_columns_cursor (Transact-SQL)

sp_help_fulltext_tables (Transact-SQL)

sp_help_fulltext_tables_cursor (Transact-SQL)

系统存储过程 (Transact-SQL)

全文搜索和语义搜索存储过程 (Transact-SQL)