SqlServer全文索引:sp_fulltext_table

sp_fulltext_table为全文索引对表进行标记或去除标记。 语法 sp_fulltext_table [ @tabname = ] ' qualified_table_name '     , [ @action = ] ' action '     [ , [ @ftcat = ] ' fulltext_catalog_name '     , [ @keyname = ] ' unique_index_name ' ] 参数 [ @tabname =] ' qualified_table_name ' 一段或两段的表名。该表必须存在于当前的数据库中。 qualified_table_name 的数据类型为 nvarchar(517),无默认值。 [ @action =] ' action ' 将要执行的动作。 action 的数据类型为 varchar(20),无默认值,可以是下面值中的一个。 值   描述 Createqualified_table_name 引用的表创建全文索引的元数据,并且指定该表的全文索引数据应该驻留在 fulltext_catalog_name 中。该动作还将 unique_index_name 的用法指派为全文键列。这个唯一的索引必须已经存在,并且必须在表的某个列上已经定义。 完成全文目录填充后才能对该表执行全文检索。 Drop对于 qualified_table_name,除去全文索引上的元数据。如果全文索引是活动的,那么在除去它之前会自动停用它。在除去全文索引之前,不必删除列。 Activate停用全文索引后,激活为 qualified_table_name 聚集全文索引数据的能力。在激活全文索引之前,应该至少有一列参与这个全文索引。 一旦为索引添加了第一列,全文索引便自动成为活动的。如果从索引中除去最后一列,该索引将成为非活动的。如果打开更改跟踪,激活非活动的索引将会启动新填充。 请注意,这个动作并没有实际填充全文索引,只是将表注册在文件系统中的全文目录,这样,在进行下一次全文索引填充时,就可以检索来自 qualified_table_name 的行。 Deactivate停用 qualified_table_name 的全文索引,使得无法再为 qualified_table_name 聚集全文索引数据。全文索引元数据依然保留,并且该表还可以被重新激活。 如果打开更改跟踪,停用一个活动的索引将会冻结索引状态:任何正在进行的填充都将停止,不再将更多的更改传播到索引。 start_change_tracking启动全文索引的增量填充。如果该表没有时间戳,那么就启动全文索引的完全填充。开始跟踪表发生的变化。 全文更改跟踪不跟踪对类型为 imagetextntext 的全文索引列所执行的任何 WRITETEXT 或 UPDATETEXT 操作。 stop_change_tracking停止跟踪表发生的变化。 update_index将当前一系列跟踪的变化传播到全文索引。 Start_background_updateindex在变化发生时,开始将跟踪的变化传播到全文索引。 Stop_background_updateindex在变化发生时,停止将跟踪的变化传播到全文索引。 start_full启动表的全文索引的完全填充。 start_incremental启动表的全文索引的增量填充。 停止停止完全或增量填充。 [ @ftcat =] ' fulltext_catalog_name 'create 动作有效的现有全文目录名。对于所有其它动作,该参数必须为 NULL。 fulltext_catalog_name 的数据类型为 sysname,默认值为 NULL。 [ @keyname =] ' unique_index_name ' 有效的单键列, create 动作的 qualified_table_name 上的唯一的非空索引。对于所有其它动作,该参数必须为 NULL。 unique_index_name 的数据类型为 sysname,默认值为 NULL。 返回代码值 0(成功)或 1(失败) 结果集注释 为一个特定的表停用全文索引后,在下一次完全填充之前,现有的全文索引仍保留在原位;可是,由于 Microsoft? SQL Server? 关闭了在停用表上的查询,所以不能使用该索引。 如果重新激活该表,而不重新填充索引,旧索引仍可用于对其余任何启用了全文索引的非新的列进行查询。删除列的数据在指定全部全文列 (*) 搜索的查询中相匹配。 为全文索引定义一个表后,把全文唯一键列从一个数据类型切换到另一个数据类型。切换方法可以是更改该列的数据类型,也可以是把全文唯一键从一列更改到另一列上。采用上述方法,在后续查询时,完全重新填充可能会引致失败并返回错误信息。"对于全文检索键值 key_value,转换到类型 data_type 失败。"为防止发生这种情况,使用 sp_fulltext_table 的"除去"动作为该表除去全文定义,并使用 sp_fulltext_tablesp_fulltext_column 对它进行重新定义。 如果全文唯一键列是个字符列或 Unicode 字符列,则必须将其定义为 450 字节或更少。 权限 只有 sysadmin 固定服务器角色成员、 db_ownerdb_ddladmin 固定数据库角色成员和对象所有者才能执行 sp_fulltext_table示例 A. 为全文索引启用表下面的示例为 Northwind 数据库的 Categories 表创建全文索引元数据。 Cat_Desc 是全文目录。 PK_CategoriesCategories 上唯一的、单列索引。 USE Northwind EXEC sp_fulltext_table 'Categories', 'create', 'Cat_Desc', 'PK_Categories' .. Add some columns EXEC sp_fulltext_column 'Categories','Description','add' .. Activate the indexEXEC sp_fulltext_table 'Categories','activate' B. 激活并传播跟踪更改当更改发生时,下面的示例激活并启动将所跟踪的更改传播到全文索引。 USE Northwind GO EXEC sp_fulltext_table Categories, 'Start_change_tracking' EXEC sp_fulltext_table Categories, 'Start_background_updateindex' C. 删除全文索引下面的示例为 Northwind 数据库的 Categories 表删除全文索引元数据。 USE Northwind EXEC sp_fulltext_table 'Categories', 'drop'
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值