KB2297709 - 修正: SQL Server で "BULK_LOGGED" または "SIMPLE" 復旧モデルを使用するデータベースで "BULK INSERT" クエリを実行すると、エラー メッセージが表示されることがある

適用先
SQL Server 2008 Developer SQL Server 2008 Enterprise SQL Server 2008 Standard SQL Server 2008 Standard Edition for Small Business SQL Server 2008 Workgroup SQL Server 2008 R2 Service Pack 2 SQL Server 2008 R2 Developer SQL Server 2008 R2 Enterprise SQL Server 2008 R2 Standard SQL Server 2008 R2 Workgroup SQL Server 2012 Developer SQL Server 2012 Enterprise SQL Server 2012 Standard SQL Server 2014 Developer - duplicate (do not use) SQL Server 2014 Enterprise - duplicate (do not use) SQL Server 2014 Standard - duplicate (do not use)

現象

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

  • 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 の最新の累積的な更新プログラムを確認してください。

      

回避策

この問題を回避するには、データベースを完全復旧モデルに設定します。

状態

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 マイクロソフトのソフトウェアの更新で使用される一般的な用語の説明