現象
Microsoft SQL Server 2012 または SQL Server 2014 で一意ではないインデックスを含むテーブルがあることを前提としています。 パーティションキーを含むビットマップインデックスを使用して、クエリを実行してテーブルを更新すると、次のエラーメッセージが表示されます。
メッセージ2601、レベル14、状態1、行1では、インデックス名> <一意のインデックスを使用して、オブジェクト <テーブル名> に重複するキー行を挿入することはできません。 重複するキー値は (0, <値>) です。
注:インデックスが一意のインデックスではなく、重複が許可されています。
解決方法
この問題は、SQL Server の次の累積的な更新プログラムで最初に修正されました。
SQL Server 2014 の累積更新プログラム4 /en-us/help/2999197
SQL Server 2012 SP2 の累積更新プログラム2 /en-us/help/2983175
SQL Server 2012 SP1 の累積更新プログラム11 /en-us/help/2975396
SQL Server 用の新しい累積更新プログラムには、以前の累積的な更新プログラムに含まれていたすべての修正プログラムとすべてのセキュリティ修正が含まれています。 SQL Server の最新の累積的な更新プログラムを確認します。
回避策
この問題を回避するには、トレースフラグ8690を有効にして スプール 操作を無効にします。 ただし、この回避策では、 スプール が無効になるため、パフォーマンスが低下することがあります。
状態
マイクロソフトでは、この問題をこの資料の対象製品として記載されているマイクロソフト製品の問題として認識しています。