Sqlserver
 sql >> Base de données >  >> RDS >> Sqlserver

Problèmes de création d'un index de texte intégral sur une vue

Vous devez d'abord créer un index clusterisé unique sur une vue, avant de créer un index de texte intégral.

Supposons que vous ayez une table :

CREATE TABLE [dbo].[tblData](
    [DataField1] [Varchar] NOT NULL,
    [DataField2] [varchar](10) NULL,
    [DataField3] [varchar](10) NULL
    )

Et comme vous l'avez déjà fait, vous avez une vue :

CREATE VIEW [dbo].[vwData] 
WITH SCHEMABINDING
AS
    SELECT  [DataField1] ,
            [DataField2] ,
            [DataField3]
    FROM    dbo.tblData
GO

Vous devez maintenant créer un index clusterisé unique sur une vue :

CREATE UNIQUE CLUSTERED INDEX idx_DataField
    ON [dbo].[vwData] (DataField1);
GO

Une fois la clé unique créée puisque vous disposez déjà du catalogue de texte intégral ft_cat_Server vous pouvez créer un index de texte intégral :

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)

J'espère que cela vous aidera :)