7

SQL Server 2005 でビューにフルテキスト インデックスを作成する際に問題があります。ドキュメントを確認しましたが、問題は見つかりませんでした。表示されるエラー メッセージは次のとおりです。非決定論的または不正確な非永続化計算列で定義されておらず、最大サイズは 900 バイトです。フルテキスト キーには別のインデックスを選択してください。」「オフライン」要件を除いて、エラー文字列のすべての要件を確認できましたが、それが何を意味するのかよくわかりません。私はそれがオフラインではないことを確信しています。

以下のターゲットテーブル、ビュー、およびインデックスを作成するスクリプトがあります。以下のサンプルでは、​​実際にはビューは必要ありません。問題を切り分けようとして簡略化されています。

DROP VIEW [dbo].[ProductSearchView]
DROP TABLE [dbo].[Product2]
行く


NUMERIC_ROUNDABORT をオフに設定します。
SET ANSI_PADDING、ANSI_WARNINGS、CONCAT_NULL_YIELDS_NULL、ARITHABORT、
    QUOTED_IDENTIFIER、ANSI_NULLS オン;
行く

CREATE TABLE [dbo].[Product2](
    [ID] [bigint] NOT NULL,
    [説明] [nvarchar](最大) NULL,
    制約 [PK_Product2] クラスター化された主キー
    (
        [同上]ASC
    )WITH (PAD_INDEX = オフ、IGNORE_DUP_KEY = オフ) オン [プライマリ]
) オン [プライマリ]
行く

CREATE VIEW [dbo].[ProductSearchView] WITH SCHEMABINDING
なので
P.Id を Id として選択し、  
         P.Description AS フィールド
FROM [dbo].Product2 AS P
行く

-- PK が設定されている場合、このインデックスはやり過ぎかもしれません...
一意のクラスタ化インデックス PK_ProductSearchView を [dbo].[ProductSearchView](Id) に作成します
行く

-- これは失敗するコマンドです
CREATE FULLTEXT INDEX ON [dbo].[ProductSearchView](Id, Field)
キー インデックス ID
CHANGE_TRACKING AUTO を使用したフルテキストの場合。
行く
4

1 に答える 1

14

フルテキストインデックスを作成するときは、列名の代わりにインデックスの名前を指定する必要があります。

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

これにより、発生しているエラーは修正されますが、テキスト検索に文字ベースではない列を含めようとしているため、別のエラーが発生します。代わりに、フルテキストカタログで使用する別のインデックス付き文字列を選択することをお勧めします。

于 2008-11-05T20:06:28.557 に答える