sp_fulltext_column (Transact-SQL)
指定表的某个特定列是否参与全文索引。
重要提示 |
---|
后续版本的 Microsoft SQL Server 将删除该功能。 请避免在新的开发工作中使用该功能,并着手修改当前还在使用该功能的应用程序。请改用 ALTER FULLTEXT INDEX。 |
语法
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 AdventureWorks;
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。
注意 |
---|
在单个全文查询函数子句中列出的所有列都必须使用相同的语言。 |