全文索引未创建

时间:2013-02-05 11:24:36

标签: sql-server-2008

我试图在我的表列中创建全文索引,但它给了我错误。

我的查询如下:

create table products
(
p_id int primary key,
p_name varchar(50),
)

insert into products values(1,'Sugar')
insert into products values(2,'Tea')
insert into products values(3,'Flour')
insert into products values(5,'Soap')

create index pname on products(p_name)
select * from products

create fulltext catalog product as default

create fulltext index on products(p_name) key index pname on product

它给出了这个错误:

  

Msg 7653,Level 16,State 2,Line 1'pname'不是有效的索引   强制执行全文搜索键。全文搜索键必须是a   不是脱机的唯一,不可为空的单列索引   在非确定性或不精确的非持久计算上定义   列,没有过滤器,最大大小为900字节。   为全文键选择另一个索引。

1 个答案:

答案 0 :(得分:3)

您应该为PRIMARY KEY命名,并在最后一个声明中将其用作KEY INDEX。

create table products
(
p_id int CONSTRAINT [PK_products] PRIMARY KEY,
p_name varchar(50),
)

....
create fulltext index on products(p_name) key index PK_products on product

KEY INDEX index_name

是table_name上唯一键索引的名称。 KEY INDEX必须是唯一的,单键,不可为空的列。选择全文唯一键的最小唯一键索引。为获得最佳性能,我们建议使用全文密钥的整数数据类型。