我试图在 SQL Server 2008 上进行全文搜索,但是我尝试索引的表是一个具有复合主键的表,如下所示:
EXEC sp_fulltext_catalog 'My_Catalog', 'create'
EXEC sp_fulltext_table 'Message', 'create', 'My_Catalog', 'PK__MESSAGES__C87C0C9C0EC32C7A' // PK__MESSAGES__C87C0C9C1EC32C6A is a composite key
我收到以下错误:
“‘PK__MESSAGES__C87C0C9C1EC32C6A’不是强制执行的有效索引
全文搜索键。全文搜索键必须是唯一的,
不可为空、非离线、未定义的单列索引
在非确定性或不精确的非持久计算列上,
没有过滤器,最大大小为 900 字节。选择另一个
全文键的索引。”
这意味着我无法在具有复合主键的表中使用全文搜索?或者我做错了什么?
我认为错误消息很清楚,不是吗?
"PK_MESSAGES_C87C0C9C1EC32C6A
不是
强制全文的有效索引
搜索键。全文搜索键
必须是一个唯一的、不可为空的、
单列索引这不是
离线,未定义
不确定性或不精确
非持久计算列,不
有一个过滤器,并且最大尺寸为
900 字节。选择另一个索引
全文密钥。”
如果您的索引不是唯一的、不是不可为空的、也不是单列的,则它不能用于全文索引。
这意味着我无法使用完整的
复合表中的文本搜索
主键?或者我在做某事
错误的?
不,正如错误所说 - 这种索引不起作用。时期。没有办法解决它。
正如 Remus 指出的那样 - 它从未说过它必须是主键索引!如果表中有一些其他不可为空且唯一的字段,则可以根据您的目的在该字段上使用唯一索引。您甚至可以简单地添加一个INT IDENTITY(1,1)
字段到您的表中并放置一个UNIQUE INDEX
在那个领域,你应该可以开始了。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)