2008-11-04 11 views
7

Ich habe Probleme beim Erstellen eines Volltextindex für eine Sicht in SQL Server 2005. Überprüfung der Dokumentation Ich habe das Problem nicht gefunden. Die Fehlermeldung, die ich erhalte, lautet: "'Id' ist kein gültiger Index zum Erzwingen eines Volltextsuchschlüssels. Ein Volltextsuchschlüssel muss ein eindeutiger, nicht nullfähiger, einspaltiger Index sein, der nicht offline ist nicht definiert in einer nicht-deterministischen oder unpräzisen nicht-überspannten berechneten Spalte und hat eine maximale Größe von 900 Bytes. Wählen Sie einen anderen Index für den Volltextschlüssel. " Ich war in der Lage, jede Anforderung in der Fehlerkette zu überprüfen, mit Ausnahme der "Offline" -Anforderung, wo ich nicht wirklich weiß, was das bedeutet. Ich bin verdammt sicher, dass es nicht offline ist.Erstellen eines Volltextindex für eine Sicht in SQL Server 2005

Ich habe das Skript zum Erstellen der Zieltabelle, Ansicht und Index unten. Ich brauche in dem folgenden Beispiel keine Ansicht, es wird vereinfacht, wenn ich versuche, das Problem zu isolieren.

 
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 

Antwort

14

Sie müssen den Namen des Index anstelle des Spaltennamen angeben, wenn der Volltextindex zu erstellen:

CREATE FULLTEXT INDEX ON [dbo].[ProductSearchView](Id, Field) 
KEY INDEX PK_ProductSearchView 
ON FullText WITH CHANGE_TRACKING AUTO; 
GO 

Dies wird den Fehler beheben Sie bekommen, aber es wird euch einen anderen Fehler geben weil Sie versuchen, eine nicht zeichenbasierte Spalte in Ihre Textsuche einzufügen. Möglicherweise möchten Sie eine andere indizierte Zeichenspalte auswählen, die stattdessen in Ihrem Volltextkatalog verwendet werden soll.

+0

danke die Lösung war perfekt –

Verwandte Themen