加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

sql-server-2005 – 在SQL Server 2005中的视图上创建全文索引

发布时间:2020-12-12 06:55:06 所属栏目:MsSql教程 来源:网络整理
导读:我在SQL Server 2005中的视图上创建全文索引时遇到了麻烦.查看文档我没有发现问题.我收到的错误消息是:“’Id’不是强制执行全文搜索键的有效索引.全文搜索键必须是唯一的,不可为空的单列索引,它不是脱机的,是未在非确定性或不精确的非持久计算列上定义,并且
我在SQL Server 2005中的视图上创建全文索引时遇到了麻烦.查看文档我没有发现问题.我收到的错误消息是:“’Id’不是强制执行全文搜索键的有效索引.全文搜索键必须是唯一的,不可为空的单列索引,它不是脱机的,是未在非确定性或不精确的非持久计算列上定义,并且最大大小为900字节.为全文键选择另一个索引.“
我已经能够验证errorstring中除了“离线”要求之外的所有要求,我不知道这意味着什么.我很确定它不会脱机.

我有脚本来创建下面的目标表,视图和索引.我真的不需要下面的示例中的视图,它简化了,因为我试图隔离问题.

DROP VIEW [dbo].[ProductSearchView]
DROP TABLE [dbo].[Product2]
GO


SET NUMERIC_ROUNDABORT OFF;
SET ANSI_PADDING,ANSI_WARNINGS,CONCAT_NULL_YIELDS_NULL,ARITHABORT,QUOTED_IDENTIFIER,ANSI_NULLS ON;
GO

CREATE TABLE [dbo].[Product2](
    [Id] [bigint] NOT NULL,[Description] [nvarchar](max) NULL,CONSTRAINT [PK_Product2] PRIMARY KEY CLUSTERED 
    (
        [Id] ASC
    )WITH (PAD_INDEX  = OFF,IGNORE_DUP_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY]
GO

CREATE VIEW [dbo].[ProductSearchView] WITH SCHEMABINDING
AS
SELECT   P.Id AS Id,P.Description AS Field
FROM [dbo].Product2 AS P
GO

-- this index may be overkill given the PK is set...
CREATE UNIQUE CLUSTERED INDEX PK_ProductSearchView ON [dbo].[ProductSearchView](Id)
GO

-- This is the command that fails
CREATE FULLTEXT INDEX ON [dbo].[ProductSearchView](Id,Field)
KEY INDEX Id
ON FullText WITH CHANGE_TRACKING AUTO;
GO

解决方法

创建全文索引时,需要指定索引的名称而不是列名:
CREATE FULLTEXT INDEX ON [dbo].[ProductSearchView](Id,Field)
KEY INDEX PK_ProductSearchView
ON FullText WITH CHANGE_TRACKING AUTO;
GO

这将解决您获得的错误,但它会给您另一个错误,因为您尝试在文本搜索中包含非基于字符的列.您可能希望选择另一个索引字符列以在全文目录中使用.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读