设为首页 收藏本站
查看: 1369|回复: 0

[经验分享] 如何获得数据库里有多少个全文索引。删除全文索引的方法 SQL server 2005

[复制链接]

尚未签到

发表于 2015-7-2 11:39:49 | 显示全部楼层 |阅读模式
  如何获得数据库里有多少个全文索引。删除全文索引的方法 SQL server 2005
  今天使用命令备份数据库的时候发生了异常:
  Msg 3007, Level 16, State 1, Line 4
The backup of the file or filegroup "sysft_db_FullText" is not permitted because it is not online. BACKUP can be performed by using the FILEGROUP or FILE clauses to restrict the selection to include only online data.
Msg 3007, Level 16, State 1, Line 4
The backup of the file or filegroup "sysft_ccc" is not permitted because it is not online. BACKUP can be performed by using the FILEGROUP or FILE clauses to restrict the selection to include only online data.
Msg 3007, Level 16, State 1, Line 4
The backup of the file or filegroup "sysft_aaa" is not permitted because it is not online. BACKUP can be performed by using the FILEGROUP or FILE clauses to restrict the selection to include only online data.
Msg 3013, Level 16, State 1, Line 4
BACKUP DATABASE is terminating abnormally.

其中:db_FullText、ccc、aaa是原来的三个全文索引目录。
  想起来是重新装系统后原来的全文索引被破坏了。 全文索引自己尝试后,发现对中文的支持很不好。查处的结果一般比实际的要少得多。所以不使用它了。
  但是忘记在那个表上建立过全文索引了。花了不少时间,与大家共享 :
  --全文索引目录
sp_help_fulltext_catalogs
--全文索引列
sp_help_fulltext_columns
--全文索引表
sp_help_fulltext_tables
  通过 sp_help_fulltext_catalogs找到了已经建立的全文索引目录。但全文索引列和索引表却没有。所以只需要删除全文索引目录就OK了。
  删除全文目录:
DROP FULLTEXT CATALOG    目录名称。
  当运行上面三个SQL结果都为空的时候,这样全文索引就清除了。可以备份了。

如果全文索引还在的话,那要启动全文索引服务后 执行DROP FULLTEXT INDEX ON 全文索引表,然后再运行 DROP FULLTEXT CATALOG    目录名称。 OK了。


参考资料:

14.8  2005新增:与全文索引相关的T-SQL语句
在SQL Server 2005以前的版本中,创建与管理全文目录、全文索引主要是使用存储过程来完成。从SQL Server 2005开始新增加了一些与全文索引相关的T-SQL语句,可以用来创建与管理全文目录和全文索引。
14.8.1  创建全文目录
创建全文目录的T-SQL语句为:
CREATE FULLTEXT CATALOG catalog_name
     [ON FILEGROUP filegroup ]
     [IN PATH 'rootpath']
     [WITH ]
     [AS DEFAULT]
     [AUTHORIZATION owner_name ]
::=
     ACCENT_SENSITIVITY = {ON|OFF}
其中参数说明如下:
l  catalog_name:全文目录名称。
l  ON FILEGROUP filegroup:包含全文目录的文件组名。
l  IN PATH 'rootpath':全文目录的路径。
l  AS DEFAULT:指定该全文目录为默认目录。
l  AUTHORIZATION owner_name:将全文目录的所有者设为数据库用户名或角色的名称。
l  ACCENT_SENSITIVITY:设置该全文目录的全文索引是否区分重音。
例十三、在Northwind数据库中创建一个名为“TSQL全文目录”全文目录,其代码如下:
CREATE FULLTEXT CATALOG TSQL全文目录
         ON FILEGROUP [PRIMARY]
         IN PATH 'E:\book\SQL Server 2005大全\数据库\第十四章\运行后数据库'
         AS DEFAULT
14.8.2  更改全文目录属性
创建完全文目录之后,如果发现其设置有不如意之处,可以用T-SQL语句对其进行修改。更改全文目录属性的T-SQL语句代码如下:
ALTER FULLTEXT CATALOG catalog_name
{ REBUILD [ WITH ACCENT_SENSITIVITY = { ON | OFF } ]
| REORGANIZE
| AS DEFAULT
}
其中参数说明如下:
l  catalog_name:全文目录名称
l  REBUILD:重新生成全文目录。
l  WITH ACCENT_SENSITIVITY:设置该全文目录的全文索引是否区分重音。
l  REORGANIZE:执行主合并索引以便将在索引过程中创建的各个较小的索引合并成一个大索引。
l  AS DEFAULT:指定该全文目录为默认目录。
例十四、重新生成“TSQL全文目录”,其代码如下:
ALTER FULLTEXT CATALOG TSQL全文目录
         REBUILD
14.8.3  创建全文索引
有了全文目录后,可以在全文目录里创建全文索引。一个全文目录里可以包含多个全文索引,但一个全文索引只能属于一个全文目录。每个数据表只能有一个全文索引。创建全文索引的T-SQL语句代码如下:
CREATE FULLTEXT INDEX ON table_name
     [(column_name [TYPE COLUMN type_column_name]
          [LANGUAGE language_term] [,...n])]
     KEY INDEX index_name
          [ON fulltext_catalog_name]
     [WITH
          {CHANGE_TRACKING {MANUAL | AUTO | OFF [, NO POPULATION]}}
     ]
其中参数说明如下:
l  table_name:数据表名。
l  column_name:全文索引中包括的一列或多列的名称。只能对类型为char、varchar、nchar、nvarchar、text、ntext、image、xml和varbinary的列进行全文索引。
l  TYPE COLUMN type_column_name:用于存储column_name的文档类型的数据表中的列名。
l  LANGUAGE language_term:存储在column_name中的数据所用的语言。
l  KEY INDEX index_name:数据表中唯一键索引的字段名。
l  ON fulltext_catalog_name:全文目录名。
l  MANUAL:指定是使用SQL Server代理还是手动传播跟踪日志。
l  AUTO:当关联的数据表中修改了数据时,SQL Server自动更新全文索引。
l  OFF[,NO POPULATION]:不保留对索引数据的更改列表。
例十五、为“文章”表的“标题”、“内容”和“文件”三个字段创建全文索引,其代码如下:
CREATE FULLTEXT INDEX
         ON 文章(标题,内容,文件 TYPE COLUMN 扩展名)
         KEY INDEX PK_文章
         ON TSQL全文目录

注意:由于在前面的章节里已经为“文章”表创建了全文索引,因此在运行本例之前要先把原来创建的全文索引删除。
14.8.4  更改全文索引属性
创建完全文索引之后,如果发现其设置有不如意之处,可以用T-SQL语句对其进行修改。更改全文索引属性的T-SQL语句代码如下:
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 ] [,...n] )
     [ WITH NO POPULATION ]
   | DROP ( column_name [,...n] )
     [WITH NO POPULATION ]
   | START { FULL | INCREMENTAL | UPDATE } POPULATION
   | STOP POPULATION
   }
其中一些参数说明如下:
l  table_name:数据表名。
l  ENABLE | DISABLE:启用或禁用全文索引。
l  MANUAL:指定是使用SQL Server代理还是手动传播跟踪日志。
l  AUTO:当关联的数据表中修改了数据时,SQL Server自动更新全文索引。
l  OFF:不保留对索引数据的更改列表。
l  ADD:指定在全文索引中添加列。
l  WITH NO POPULATION:指定添加过删除全文索引列之后不填充全文索引。
l  DROP:指定在全文索引中删除列。
l  START……POPULATION:开始填充全文索引。
l  FULL:指定填充所有全文索引。
l  INCREMENTAL:指定对上次填充以来修改过的行进行填充。
l  UPDATE :指定对自上次更新更改跟踪索引以来的所有插入、更新或删除进行处理。
l  STOP POPULATION:停止正在进行的填充。
例十六、禁用“文章”表的全文索引,其代码如下:
ALTER FULLTEXT INDEX ON 文章
         DISABLE
例十七、启用“文章”表的全文索引,其代码如下:
ALTER FULLTEXT INDEX ON 文章
         ENABLE
例十八、将“文章”表里的“文件”字段从全文索引里删除,其代码如下:
ALTER FULLTEXT INDEX ON 文章
         DROP (文件)
例十九、填充“文章”表的全文索引,其代码如下:
ALTER FULLTEXT INDEX ON 文章
         START FULL POPULATION
14.8.5  删除全文索引
删除全文索引的T-SQL的语法代码比较简单,如下所示:
DROP FULLTEXT INDEX ON table_name
例二十、删除“文章”表里的全文索引,其代码如下:
DROP FULLTEXT INDEX ON 文章
14.8.6  删除全文目录
删除全文目录的T-SQL的语法代码比较简单,如下所示:
DROP FULLTEXT CATALOG catalog_name
例二十一、删除“文章”表里的全文索引,其代码如下:
DROP FULLTEXT CATALOG TSQL全文目录

注意:要删除全文目录必须为空,即不能包含有全文索引。
  

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-82502-1-1.html 上篇帖子: SQL Server 2008多版本并发控制 下篇帖子: SQL Server procedure
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表