KB2490920 - 修正: SQL Server 2005 または SQL Server 2008 で ALTER PARTITION FUNCTION ステートメントを実行してパーティション範囲を分割または結合すると、"メッセージ 2601、レベル 14、状態 1、行 1 は重複するキー行を挿入できません" というエラーが発生する

適用先
Microsoft SQL Server 2005 Enterprise Edition Microsoft SQL Server 2005 Developer Edition Microsoft SQL Server 2005 Standard Edition Microsoft SQL Server 2005 Workgroup Edition SQL Server 2008 Developer SQL Server 2008 Enterprise SQL Server 2008 Standard SQL Server 2008 Workgroup

マイクロソフトでは、Microsoft SQL Server 2005 または Microsoft SQL Server 2008 の修正プログラムを 1 つのダウンロード可能なファイルとして配布しています。 修正は累積的であるため、新しいリリースの修正には、以前の Microsoft SQL Server 2005 または Microsoft SQL Server 2008 修正プログラムのリリースに含まれていたすべての修正プログラムとすべてのセキュリティ修正プログラムが含まれています

現象

たとえば次のようなシナリオを考えてみます。

  • コンピューターに Microsoft SQL Server 2005 または SQL 2008 のインスタンスをインストールします。
  • アライメントされていない非クラスター化インデックスを含むパーティション分割テーブルを作成します。
  • ALTER PARTITION FUNCTION ステートメントを実行して、パーティション表のパーティション範囲を分割または結合します。

この場合、次のエラー メッセージが定期的に表示されます。

注

メッセージ 2601、レベル 14、状態 1、行 1
一意なインデックス <uniqueindexname> を持つオブジェクト <objectname> に重複するキー行を挿入できません。

原因

この問題は、パーティション範囲が分割されたときにクエリ オプティマイザでエラーがトリガーされるために発生します。

ランタイム プランが、影響を受けるパーティション範囲から一部の行を削除して新しいパーティション範囲に挿入すると、一意キー違反が発生します。

解決策

累積的な更新プログラムの情報

SQL Server 2005 Service Pack 3

この問題の修正プログラムは、SQL Server 2005 Service Pack 3 の累積的な更新プログラム 15 で最初にリリースされました。 この累積的な更新プログラム パッケージの関連情報を参照するには、以下の「サポート技術情報」 (Microsoft サポート技術情報) をクリックしてください。

2507766 SQL Server 2005 Service Pack 3 の累積的な更新プログラム パッケージ 15 注: ビルドは累積的であるため、新しくリリースされた各修正プログラムには、以前の SQL Server 2005 更新プログラム リリースに含まれていたすべての修正プログラムおよびセキュリティ更新プログラムが含まれています。 マイクロソフトでは、この修正プログラムを含む最新の修正プログラム リリースを適用することを検討することをお勧めします。 詳細については、次のマイクロソフト サポート技術情報番号をクリックしてください。

960598 SQL Server 2005 Service Pack 3 以降にリリースされた SQL Server 2005 ビルドには、特定の SQL Server Service Pack 用に Microsoft SQL Server 2005 修正プログラムが作成されます。 SQL Server 2005 Service Pack 3 のインストールには SQL Server 2005 Service Pack 3 修正プログラムを適用する必要があります。 既定では、1 つの SQL Server Service Pack で提供されているすべての修正プログラムは、次の SQL Server Service Pack に含まれています。

SQL Server 2005 Service Pack 4

この問題の修正プログラムは、SQL Server 2005 Service Pack 4 の累積的な更新プログラム 2 で最初にリリースされました。 この累積的な更新プログラム パッケージの関連情報を参照するには、以下の「サポート技術情報」 (Microsoft サポート技術情報) をクリックしてください。

2489409 SQL Server 2005 Service Pack 4 の累積的な更新プログラム パッケージ 2 注: ビルドは累積的であるため、新しくリリースされた各修正プログラムには、以前の SQL Server 2005 更新プログラムのリリースに含まれていたすべての修正プログラムおよびセキュリティ更新プログラムが含まれています。 マイクロソフトでは、この修正プログラムを含む最新の修正プログラム リリースを適用することを検討することをお勧めします。 詳細については、次のマイクロソフト サポート技術情報番号をクリックしてください。

2485757 SQL Server 2005 Service Pack 4 以降にリリースされた SQL Server 2005 ビルドには、特定の SQL Server Service Pack 用に Microsoft SQL Server 2005 修正プログラムが作成されます。 SQL Server 2005 Service Pack 4 のインストールには SQL Server 2005 Service Pack 4 修正プログラムを適用する必要があります。 既定では、1 つの SQL Server Service Pack で提供されているすべての修正プログラムは、次の SQL Server Service Pack に含まれています。

SQL Server 2008 Service Pack 1

この問題の修正プログラムは、SQL Server 2008 Service Pack 1 の累積的な更新プログラム 13 で最初にリリースされました。 この累積的な更新プログラム パッケージの関連情報を参照するには、以下の「サポート技術情報」 (Microsoft サポート技術情報) をクリックしてください。

2497673 SQL Server 2008 Service Pack 1 の累積的な更新プログラム パッケージ 13 注: ビルドは累積的であるため、新しくリリースされた修正プログラムには、以前の SQL Server 2008 更新プログラムのリリースに含まれていたすべての修正プログラムおよびセキュリティ更新プログラムが含まれています。 マイクロソフトでは、この修正プログラムを含む最新の修正プログラム リリースを適用することを検討することをお勧めします。 詳細については、次のマイクロソフト サポート技術情報番号をクリックしてください。

970365 SQL Server 2008 Service Pack 1 以降にリリースされた SQL Server 2008 ビルドには、特定の SQL Server Service Pack 用に Microsoft SQL Server 2008 修正プログラムが作成されます。 SQL Server 2008 Service Pack 1 のインストールには、SQL Server 2008 Service Pack 1 修正プログラムを適用する必要があります。 既定では、1 つの SQL Server Service Pack で提供されているすべての修正プログラムは、次の SQL Server Service Pack に含まれています。

SQL Server 2008 Service Pack 2

この問題の修正プログラムは、SQL Server 2008 Service Pack 2 の累積的な更新プログラム 3 で最初にリリースされました。 この累積的な更新プログラム パッケージの関連情報を参照するには、以下の「サポート技術情報」 (Microsoft サポート技術情報) をクリックしてください。

2498535 SQL Server 2008 Service Pack 2 の累積的な更新プログラム パッケージ 3 注: ビルドは累積的であるため、新しい修正プログラムの各リリースには、以前の SQL Server 2008 更新プログラムのリリースに含まれていたすべての修正プログラムおよびセキュリティ更新プログラムが含まれています。 マイクロソフトでは、この修正プログラムを含む最新の修正プログラム リリースを適用することを検討することをお勧めします。 詳細については、次のマイクロソフト サポート技術情報番号をクリックしてください。

2402659 SQL Server 2008 Service Pack 2 SQL Server以降にリリースされた SQL Server 2008 ビルドは、特定の SQL Server Service Pack 用に作成されます。 SQL Server 2008 Service Pack 2 のインストールには、SQL Server 2008 Service Pack 2 修正プログラムを適用する必要があります。 既定では、1 つの SQL Server Service Pack で提供されているすべての修正プログラムは、次の SQL Server Service Pack に含まれています。

状態

Microsoft は、これが "適用対象" セクションに記載されている Microsoft 製品の問題であることを確認しました。

参考資料

Transact-SQL ALTER PARTITION FUNCTION ステートメントの詳細については、次の MSDN Web サイトを参照してください。

Transact-SQL ALTER PARTITION FUNCTION ステートメントに関する一般的な情報 パーティション分割インデックスの特別なガイドラインの詳細については、次の MSDN Web サイトを参照してください。

パーティション インデックスの特別なガイドラインSQL Server の増分サービス モデルの関連情報を参照するには、以下の「サポート技術情報」 (Microsoft サポート技術情報) をクリックしてください。

935897 報告された問題に対する修正プログラムを提供する SQL Server チームの増分サービス モデル (ISM) について

SQL Server の更新プログラムの命名方式の関連情報を参照するには、以下のサポート技術情報番号をクリックしてください。

822499 Microsoft SQL Server ソフトウェア更新プログラム パッケージの新しい命名スキーマソフトウェア更新プログラムに関する用語の関連情報を参照するには、以下の「サポート技術情報」 (Microsoft サポート技術情報) をクリックしてください。

824684 マイクロソフトのソフトウェアの更新で使用される一般的な用語の説明