Sqlserver
 sql >> Base de Dados >  >> RDS >> Sqlserver

Problemas ao criar um índice de texto completo em uma exibição


Primeiro, você precisa criar um índice clusterizado exclusivo em uma exibição, antes de criar um índice de texto completo.

Suponha que você tenha uma tabela:
CREATE TABLE [dbo].[tblData](
    [DataField1] [Varchar] NOT NULL,
    [DataField2] [varchar](10) NULL,
    [DataField3] [varchar](10) NULL
    )

E como você já fez, você tem uma visão:
CREATE VIEW [dbo].[vwData] 
WITH SCHEMABINDING
AS
    SELECT  [DataField1] ,
            [DataField2] ,
            [DataField3]
    FROM    dbo.tblData
GO

Agora você precisa criar um índice clusterizado exclusivo em uma exibição:
CREATE UNIQUE CLUSTERED INDEX idx_DataField
    ON [dbo].[vwData] (DataField1);
GO

Após a criação da chave exclusiva, pois você já possui o catálogo de texto completo ft_cat_Server você pode criar um índice de texto completo:
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)

Espero que isto ajude :)