我有一个像这样创建的 View :
CREATE VIEW [dbo].[vwData] WITH SCHEMABINDING
AS
SELECT [DataField1] ,
[DataField2] ,
[DataField3]
FROM dbo.tblData
当我尝试在其上创建全文索引时,如下所示:
CREATE FULLTEXT INDEX ON [dbo].[vwData](
[DataField] LANGUAGE [English])
KEY INDEX [idx_DataField]ON ([ft_cat_Server], FILEGROUP [PRIMARY])
WITH (CHANGE_TRACKING = AUTO, STOPLIST = SYSTEM)
我收到此错误:
View 'dbo.vwData' is not an indexed view.
Full-text index is not allowed to be created on it.
知道为什么吗?
最佳答案
首先,您需要在 View 上创建唯一的聚集索引,然后再创建全文索引。
假设你有一张 table :
CREATE TABLE [dbo].[tblData](
[DataField1] [Varchar] NOT NULL,
[DataField2] [varchar](10) NULL,
[DataField3] [varchar](10) NULL
)
正如您已经所做的那样,您有一个 View :
CREATE VIEW [dbo].[vwData]
WITH SCHEMABINDING
AS
SELECT [DataField1] ,
[DataField2] ,
[DataField3]
FROM dbo.tblData
GO
现在您需要在 View 上创建唯一的聚集索引:
CREATE UNIQUE CLUSTERED INDEX idx_DataField
ON [dbo].[vwData] (DataField1);
GO
由于您已有全文目录ft_cat_Server,创建唯一键后,您可以创建全文索引:
CREATE FULLTEXT INDEX ON [dbo].[vwData](
[DataField1] LANGUAGE [English])
KEY INDEX [idx_DataField]ON ([ft_cat_Server], FILEGROUP [PRIMARY])
WITH (CHANGE_TRACKING = AUTO, STOPLIST = SYSTEM)
希望这有帮助:)
关于sql - 在 View 上创建全文索引时出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18945624/