sql >> データベース >  >> RDS >> Sqlserver

SQL Server 2005 でデータ型 varchar(4096) を持つ列の 900 キー長制限インデックスを解決する方法は?

    できません - エラー メッセージが既に明確に示しているように、インデックス エントリの長さは 900 バイトを超えることはできません。

    varchar(4096) フィールドにインデックスを作成することはできません - ピリオド。それを回避する方法はありません-これはSQL Serverのハード制限です-構成、変更、拡大する方法はありません。 オンライン ブック - インデックス キーの最大サイズ を参照してください。

    「値」列を 900 バイト未満に制限するか、そのデータを格納する別の方法を見つけるか、インデックスに含めないようにする必要があります。インデックス内の「値」フィールドのみにカバリング インデックスを持たせたい (インデックス エントリからのクエリを満たすことができるようにする) 場合は、フィールドを移動して 含まれる列 にすることができます。 インデックス内 - それらは 900 バイトの制限を下回っていません。

    CREATE NONCLUSTERED INDEX idx_ncl_2 
      ON BFPRODATTRASSOCIATION(attributeid) 
      INCLUDE (productid, value)
    

    そのインデックスは機能するはずです。



    1. SQL、データを更新する方法

    2. 誘惑可能なDBCCステートメントの出力をキャッチする方法

    3. MySQLSpatialExtensionsを使用してポイントからN個の最も近いLineStringを検索します

    4. jQueryオートコンプリートMysqlPHP