KB979212 - 修正: Microsoft SQL Server 2005、Microsoft SQL Server 2008、または Microsoft SQL Server 2008 R2 マージ レプリケーションでカスタム リゾルバーを使用して競合を解決すると、DateTime 値が NULL 値に置き換えられます

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

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

現象

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

  • マージ レプリケーションは、Microsoft SQL Server 2005、Microsoft SQL Server 2008、または Microsoft SQL Server 2008 R2 で作成します。
  • 競合が検出された後に競合の勝者を決定するために使用されるカスタム リゾルバーを作成します。
  • DateTime データ型の列がある。
  • DateTime 列に、あるサイトの NULL 値が含まれています。 別のサイトの対応するフィールドの値が NULL DateTime 値ではありません。 これらのサイトの 1 つは発行元で、もう 1 つのサイトはサブスクライバーです。
  • パブリッシャーとサブスクライバーが接続され、同期が行われます。

このシナリオでは、カスタム リゾルバーは NULL 値が競合の勝者であると判断します。 次に、カスタム リゾルバーは DateTime 値を NULL 値に置き換えます。

原因

アップロード操作中に、Microsoft SQL Server 2005、Microsoft SQL Server 2008、または Microsoft SQL Server 2008 R2 は、カスタム リゾルバーの結果セットを使用して、列の状態に応じて列値をオーバーライドします。 ただし、Microsoft SQL Server 2005、Microsoft SQL Server 2008、または Microsoft SQL Server 2008 R2 では、列の状態が正しくリセットされません。

解決策

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

SQL Server 2005

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

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

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

SQL Server 2008

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

SQL Server 2008 Service Pack 1 の累積的な更新プログラム 9 2083921注 ビルドは累積的であるため、新しくリリースされた各修正プログラムには、以前の 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 の累積的な更新プログラム 1 で最初にリリースされました。 この累積的な更新プログラム パッケージの関連情報を参照するには、以下の「サポート技術情報」 (Microsoft サポート技術情報) をクリックしてください。

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

2402659 SQL Server 2008 Service Pack 2 以降にリリースされた SQL Server 2008 ビルド

SQL Server 2008 R2

この問題の修正プログラムは、累積的な更新プログラム 3 で最初にリリースされました。 SQL Server 2008 R2 用のこの累積的な更新プログラム パッケージを入手する方法の詳細については、以下のサポート技術情報番号をクリックしてください。

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

981356 SQL Server 2008 R2 のリリース以降にリリースされた SQL Server 2008 R2 のビルド

状態

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

参考資料

マージ レプリケーションが競合を検出して解決する方法の詳細については、次の MSDN (Microsoft Developer Network) Web サイトを参照してください。

マージ レプリケーションで競合を検出して解決する方法SQL Server の増分サービス モデルの関連情報を参照するには、以下の「サポート技術情報」 (Microsoft サポート技術情報) をクリックしてください。

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

  SQL Server 2005 Service Pack 3 の入手方法の詳細については、以下のサポート技術情報番号をクリックしてください。

913089
  SQL Server 2005 の最新の Service Pack を入手する方法
   SQL Server 2005 Service Pack 3 の新機能および強化された機能の詳細については、次のマイクロソフト Web サイトを参照してください。

https://go.microsoft.com/fwlink/?linkid=131442
  SQL Server の更新プログラムの命名方式の関連情報を参照するには、以下のサポート技術情報番号をクリックしてください。

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

824684
  Microsoft のソフトウェア更新の説明で使用される一般的な用語の解説