我想在 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/