現象
たとえば次のようなシナリオを考えてみます。
- Microsoft SQL Server 2008、SQL Server 2008 R2、SQL Server 2012、または SQL Server 2014 で BULK_LOGGED または SIMPLE 復旧モデルを使用するデータベースがあります。
- SET XACT_ABORTスイッチをオンにします。
- 複数の BULK INSERT ステートメントを 1 つの分散トランザクションで実行しようとするとします。
この場合、BULK INSERT ステートメントが失敗し、次のエラー メッセージが表示される場合があります。
注
場所: pageref.cpp:913
式: IS_OFF (BUF_MINLOGGED, m_buf->bstat) || pageModifyType != PageModifyType_Contents ||GetPagePtr ()->IsTextPage ()
SPID: 56
プロセス ID: 2136
メッセージ 3624、レベル 20、状態 1、行 7
システム アサーション チェックに失敗しました。 詳細については、SQL Server エラー ログを確認してください。 通常、アサーション失敗はソフトウェアのバグまたはデータの破損によって発生します。 データベースの破損をチェックするには、DBCC CHECKDB の実行を検討してください。 セットアップ中にダンプを Microsoft に送信することに同意した場合は、ミニ ダンプが Microsoft に送信されます。 更新プログラムは、Microsoft の最新の Service Pack またはテクニカル サポートからの QFE で入手できる場合があります。
メッセージ 0、レベル 20、状態 0、行 0
現在のコマンドで重大なエラーが発生しました。 結果がある場合は破棄する必要があります。
さらに、SQL Server ログ フォルダーにミニダンプ ファイルが生成される場合があります。
注: この問題は通常、SQL Server Integration Services (SSIS) が使用されている場合に発生します。 たとえば、TransactionOption パッケージ レベル プロパティが [必須] に設定されている場合、Microsoft 分散トランザクション コーディネーター (MS DTC) は、SET XACT_ABORT ON と共に分散トランザクションを開始するために関与します。
原因
この問題は、SQL Server 2008、SQL Server 2008 R2、SQL Server 2012、または SQL Server 2014 のエラーが原因で発生します。
解決策
この問題は、次の SQL Server の累積的な更新プログラムで最初に修正されました。
SQL Server 2014 用の累積的な更新プログラム 1 /en-us/help/2931693
SQL Server 2012 SP1 の累積的な更新プログラム 8 /en-us/help/2917531
SQL Server 2008 R2 SP2 の累積的な更新プログラム 10 /en-us/help/2908087
SQL Server 2008 SP1 用の累積的な更新プログラム 10 /en-us/help/2279604
SQL Server 2008 SP2 の累積的な更新プログラム 1 /en-us/help/2289254
SQL Server 2008 R2 の累積的な更新プログラム 5 /en-us/help/2438347
SQL Server 用の累積的な更新プログラムについて
SQL Server 用の新しい累積的な更新プログラムには、以前の累積的な更新プログラムに含まれていたすべての修正プログラムとすべてのセキュリティ修正プログラムが含まれています。 SQL Server の最新の累積的な更新プログラムを確認してください。
- SQL Server 2014 の最新の累積的な更新プログラム
- SQL Server 2012 SP1 の最新の累積的な更新プログラム
- SQL Server 2008 R2 SP2 の最新の累積的な更新プログラム
- SQL Server 2008 SP1 の最新の累積的な更新プログラム
- SQL Server 2008 SP2 の最新の累積的な更新プログラム
- SQL Server 2008 R2 の最新の累積的な更新プログラム
回避策
この問題を回避するには、データベースを完全復旧モデルに設定します。
状態
Microsoft は、これが "適用対象" セクションに記載されている Microsoft 製品の問題であることを確認しました。
参考資料
SET XACT_ABORT 設定の詳細については、次の MSDN (Microsoft Developer Network) Web サイトを参照してください。
"SET XACT_ABORT" 設定に関する一般的な情報 最小限ログに記録される操作の詳細については、次の MSDN Web サイトを参照してください。
最小限にログに記録される操作に関する一般的な情報 トランザクションを使用してデータ整合性を維持する方法の詳細については、次の MSDN Web サイトを参照してください。
トランザクションを使用してデータ整合性を維持する方法に関する一般的な情報SQL Server の増分サービス モデルの関連情報を参照するには、以下の「サポート技術情報」 (Microsoft サポート技術情報) をクリックしてください。
935897 報告された問題に対する修正プログラムを提供する SQL Server チームの増分サービス モデル (ISM) について
SQL Server の更新プログラムの命名方式の関連情報を参照するには、以下のサポート技術情報番号をクリックしてください。
822499 Microsoft SQL Server ソフトウェア更新プログラム パッケージの新しい命名スキーマソフトウェア更新プログラムに関する用語の関連情報を参照するには、以下の「サポート技術情報」 (Microsoft サポート技術情報) をクリックしてください。
824684 マイクロソフトのソフトウェアの更新で使用される一般的な用語の説明