現象
次のような状況で問題が発生します。
-
Microsoft SQL Server 2012 でデータベースの変更の管理を有効にします。
-
System change tracking 関数CHANGE_TRACKING_CURRENT_VERSION ()を使用するクエリを実行します。
-
SQL Server は、並列クエリの実行プランを使ってクエリを実行しようとします。
このシナリオでは、アクセス違反が発生し、次のエラーメッセージが表示されることがあります。
Msg 0、Level 11、State 0、Line 0A 重大なエラーが現在のコマンドで発生しました。 結果は破棄する必要があります。
原因
この問題は、 CHANGE_TRACKING_CURRENT_VERSION ()関数を並列で正しく実行できないことが原因で発生します。
解決方法
この問題は、SQL Server の次の累積的な更新プログラムで最初に修正されました。
SQL Server 2012 SP1 の累積更新プログラム6 /en-us/help/2874879
SQL Server 用の新しい累積更新プログラムには、以前の累積的な更新プログラムに含まれていたすべての修正プログラムとすべてのセキュリティ修正が含まれています。 SQL Server の最新の累積的な更新プログラムを確認します。
状態
マイクロソフトでは、この問題をこの資料の対象製品として記載されているマイクロソフト製品の問題として認識しています。
回避策
この問題を回避するには、クエリの OPTION (MAXDOP 1) ヒントを使用します。