如何判断字段是否做了全文索引??
我在程序里面设置了是否开启全文索引开关
 要搜索的表、字段都是参数 @TabelName, @FieldName每次搜索都判断 @FieldName 是否做了全文索引,没做的话 Contains(...) 就出错 现在用的是系统存储过程来判断 sp_help_fulltext_columns_cursor,感觉效率很低,加上这判断过程很慢,而且用于搜索的存储过程会返回两个记录集请问有什么方法可以解决?指点小弟一二

解决方案 »

  1.   

    select object_name(object_id) tbname,syscolumns.name colname from sys.fulltext_index_columns
    inner join syscolumns on sys.fulltext_index_columns.object_id=syscolumns.id 
    and sys.fulltext_index_columns.column_id=syscolumns.colorder
    2005下调试通过。
    create procedure protest
    @TabelName varchar(20),
    @FieldName varchar(20)
    as 
    if (select count(*) from 
    (select object_name(object_id) tbname,syscolumns.name colname from sys.fulltext_index_columns
    inner join syscolumns on sys.fulltext_index_columns.object_id=syscolumns.id 
    and sys.fulltext_index_columns.column_id=syscolumns.colorder) a
    where a.tbname=@TabelName and a.colname=@FieldName) >0
    begin
    select * from tb where Contains(...) 
    end 
    else
    ...
      

  2.   

    mssql2000没有 sys.fulltext_index_columns.......
      

  3.   

    仔细看了2天终于有点发现当将表中某个字段做了全文索引后,在系统表 syscolumns 中的colstat的值都会变成16
      

  4.   

    还是应该有个系统表与全文索引有关的,sqlserver2000中也应该有的。查一下帮助,找到那个表就解决了。