sql-server - 在十进制/数字列上创建全文索引,可能吗????? (SQL 服务器 2008)

标签 sql-server numbers fulltext-index

我想在 varchars 和数字的多个列上创建全文索引。数字有问题。

真的没有办法为全文索引添加列作为数字或小数吗?

例如,我有一个表格文章:

CREATE TABLE article
(   articleid   number(10)  not null,
    articlename     varchar(50)     not null,
    articlecode1    varchar(50)
);

CREATE FULLTEXT CATALOG MyCatalog;

CREATE FULLTEXT INDEX ON artikel
     (articleid LANGUAGE 0x0,
      articlename LANGUAGE 0x0,
      articlecode1 LANGUAGE 0x0)
KEY INDEX PK_ARTICLE ON MyCatalog
WITH CHANGE_TRACKING AUTO;

无法创建,因为articleid是一个数字!

我的替代解决方案是创建第二列,例如 articleidtext varchar 作为 articleid 的副本。然后用触发器填充。

真的没有别的办法吗?

我也尝试过像这样进行 Cast:CAST(articleid AS varchar) LANGUAGE 0x0 它也不起作用。

还有其他建议吗??

谢谢...

最佳答案

您可以根据您的 articleId 创建一个 VARCHAR 类型的计算持久列 - 这不需要用触发器或任何东西填充,它将始终表示 articleId,但作为 VARCHAR 列,因此它可以被全文索引:

ALTER TABLE dbo.article
ADD ArticleIDText AS CAST(ArticleID AS VARCHAR(20)) PERSISTED

现在将您的全文索引放在 ArticleIDText 上,一切都应该没问题....

关于sql-server - 在十进制/数字列上创建全文索引,可能吗????? (SQL 服务器 2008),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4828412/

相关文章:

PHP 将美分转换为美元

java - Spring NamedParameterJdbcTemplate 问题与 MSSqlServer 中的划分和参数

sql - 与其他SQL子句相比,PARTITION BY子句的执行顺序是什么?

c# - 在字典中查找最接近给定值的值 C#

java - 如何在 mongo-spring 聚合中使用文本搜索

MySQL:搜索文件内容的最佳方式(全文搜索)

sql-server - Azure 市场镜像是否有软件保障?

sql - 重播SQL Server上的负载的工具

java - Float.MIN_VALUE 和 Float.MIN_NORMAL 之间的区别?