ALTER FULLTEXT INDEX命令用来改变全文索引的属性,也可以控制/启动全文索引的填充。语法如下:
ALTER FULLTEXT INDEX ON table_name
{ ENABLE
| DISABLE
| SET CHANGE_TRACKING [ = ] { MANUAL | AUTO | OFF }
| ADD ( column_name
[ TYPE COLUMN type_column_name ]
[ LANGUAGE language_term ]
[ STATISTICAL_SEMANTICS ]
[,...n]
)
[ WITH NO POPULATION ]
| DROP ( column_name [,...n] )
[ WITH NO POPULATION ]
| START { FULL | INCREMENTAL | UPDATE } POPULATION
| {STOP | PAUSE | RESUME } POPULATION
| SET STOPLIST [ = ] { OFF| SYSTEM | stoplist_name }
[ WITH NO POPULATION ]
参数 | 描述 |
table_name | 这个参数指定了要修改的全文索引所在的表名 |
ENABLE | DISABLE | ENABLE 激活全文索引;DISABLE 关闭全文索引。 禁用索引时,表不支持全文查询。通过禁用全文索引,您可以关闭更改跟踪但保留全文索引,如果禁用全文索引,则全文索引元数据将保留在系统表中。 |
SET CHANGE_TRACKING {MANUAL | AUTO | OFF} | MANUAL指定跟踪的更改会手动传播,AUTO指定当基表中的数据修改时,所跟踪的更改将会自动传播(自动填充) OFF指定 SQL Server 将不保存对索引数据的更改的列表。 |
ADD | DROP column_name | 指定要添加到全文索引一个或多个列的名称 |
type_column_name | 指定表列的名称 (type_column_name),用于存储 varbinary、varbinary(max) 或 image 文档的文档类型 。 |
language_term | 指定为与语言区域设置标识符 (LCID) 对应的字符串、整数或十六进制值 。 |
WITH NO POPULATION | 指定在执行 ADD 或 DROP 列操作或 SET STOPLIST 操作之后不填充全文索引。 |
DROP(column_name [,...n]) | 指定要从既有全文索引中移除的列的名字 |
START {FULL|INCREMENTAL|UPDATE} POPULATION | FULL指定检索表中的每一行以进行全文索引,即使已对这些行进行了索引。 INCREMENTAL指定仅检索自上次填充以来修改的行以进行全文索引。 仅当表包含一个类型为 timestamp的列时,才能应用 INCREMENTAL。 如果全文目录中的表不包含 timestamp 类型的列,则该表将进行完全填充 。 UPDATE指定对自上次更新更改跟踪索引以来的所有插入、更新或删除进行处理。 必须对表启用更改跟踪填充,但不应打开后台更新索引或自动更改跟踪。 |
{STOP | PAUSE | RESUME } POPULATION | 停止或暂停正在进行的任何填充;或者停止或恢复任何暂停的填充。 STOP POPULATION 不会停止自动更改跟踪或后台更新索引。 若要停止更改跟踪,请使用 SET CHANGE_TRACKING OFF。 PAUSE POPULATION 和 RESUME POPULATION 只能用于完全填充。 它们与其他填充类型无关,因为其他填充从爬网停止的位置恢复爬网。 |
SET STOPLIST { OFF| SYSTEM | stoplist_name } | 更改与索引(如果有)关联的全文非索引字表。 OFF指定没有与全文索引关联的非索引字表。 SYSTEM指定应对此全文索引使用默认的全文系统 STOPLIST。 stoplist_name指定要与全文索引关联的非索引字表的名称。 |
1.增加一个新的列到Production.Document表的全文索引中:
USE AdventureWorks
GO
ALTER FULLTEXT INDEX ON Production.Document
ADD(Title)
2.启动一个全文索引填充操作
USE AdventureWorks
GO
ALTER FULLTEXT INDEX ON Production.Document
START FULL POPULATION
因为全文索引填充操作正在进行(在增加新的列到全文索引的操作中我们没有指定WITH NO POPULATION选项),该操作将会返回一个警告:
3.关闭表的全文索引的更改跟踪
USE AdventureWorks
GO
ALTER FULLTEXT INDEX ON Production.Document
SET CHANGE_TRACKING OFF
4.将TiTle列从全文索引中删除
USE AdventureWorks
GO
ALTER FULLTEXT INDEX ON Production.Document
DROP (Title)