Microsoft は、Microsoft SQL Server 2008 R2 の修正プログラムを1つのダウンロード可能なファイルとして配布します。 修正プログラムは累積的であるため、新しいリリースごとに、以前の SQL Server 2008 R2 fix release に含まれていたすべての修正プログラムとセキュリティの修正プログラムが含まれています。
現象
次のような状況で問題が発生します。
-
トランザクションパブリケーションは、SQL Server 2008 R2 で作成します。
-
テーブルをアーティクルとして文書に追加します。
-
トランザクションパブリケーションを初期化し、初期スナップショットを生成します。
-
クエリを実行して、新しい列をテーブルに追加します。たとえば、次のクエリを実行して、 <列名> 列を <テーブル名> テーブルに追加します。
Alter table <table name> add <column name> int null
このシナリオでは、クエリは実行されず、次のようなエラーメッセージが表示されます。
Location: replschema. .cpp: 1305Expression: (pCopySrc-コマンド) <= (int) Cmdlength Spid: <Spid>プロセス ID: <プロセス ID>
Msg 4902、Level 16、State 1、Line 2<テーブル名が存在しない、または権限がないため、 テーブル名> のオブジェクトが見つかりません。この問題が発生すると、SQL Server エラーログファイルに次のエラーメッセージが記録されます。
または、次のような別のエラーが表示されることがあります。
Msg 3624、レベル20、状態1、プロシージャ sp_replflush、行1A システムアサーションチェックが失敗しました。 詳細については、SQL Server エラーログを確認してください。 通常、アサーションエラーはソフトウェアバグまたはデータの破損が原因で発生します。 データベースが破損していないかどうかを確認するには、DBCC CHECKDB の実行を検討します。 セットアップ時に Microsoft にダンプを送信することに同意した場合は、ミニダンプが Microsoft に送信されます。 更新プログラムは、最新の Service Pack または QFE のテクニカルサポートから提供されている場合があります。
さらに、次のエントリがエラーログに記録されます。
2011-03-25 08:56: 14.71 spid55 Error: 17066、深刻度:16、State: 1.2011-03-25 08:: 14.71 spid55 SQL Server Assertion: File: <replschema: .cpp>、line = 1305 Failed Assertion = ' (pCopySrc-コマンド) <= (int) cmdLength '。 このエラーは、タイミングに関連している可能性があります。 ステートメントを再実行した後でもエラーが発生する場合は、DBCC CHECKDB を使ってデータベースの構造の整合性を確認するか、またはサーバーを再起動して、メモリ内のデータ構造体が破損していないことを確認します。 2011 ~ 03-25 08:56: 14.92 spid55 Error: 3624、Severity:20 詳細については、SQL Server エラーログを確認してください。 通常、アサーションエラーはソフトウェアバグまたはデータの破損が原因で発生します。 データベースが破損していないかどうかを確認するには、DBCC CHECKDB の実行を検討します。 セットアップ時に Microsoft にダンプを送信することに同意した場合は、ミニダンプが Microsoft に送信されます。 更新プログラムは、最新の Service Pack または QFE のテクニカルサポートから提供されている場合があります。
解決方法
累積的な更新プログラムの情報
SQL Server 2008 R2 Service Pack 1
この問題の修正プログラムは、SQL Server 2008 R2 Service Pack 1 の累積更新プログラム1で最初にリリースされました。この累積的な更新プログラムパッケージの入手方法の詳細については、次の記事番号をクリックして、Microsoft サポート技術情報の記事を参照してください。
2544793 SQL Server 2008 R2 Service Pack 1 の累積的な更新プログラムパッケージ1注: ビルドは累積的であるため、各新しい修正プログラムには、以前の SQL Server 2008 R2 fix release に含まれていたすべての修正プログラムとセキュリティ修正プログラムが含まれています。 この修正プログラムを含む最新の修正プログラムを適用することを検討することをお勧めします。 詳細については、次のマイクロソフト サポート技術情報番号をクリックしてください。
2567616 SQL Server 2008 R2 Service Pack 1 がリリースされた後にリリースされた SQL Server 2008 R2 ビルド SQL Server 2008 R2 この問題の修正プログラムは、累積的な更新プログラム7で最初にリリースされました。SQL Server 2008 R2 用の累積的な更新プログラムパッケージの入手方法の詳細については、次の記事番号をクリックして、Microsoft サポート技術情報の記事を参照してください。
2507770 SQL Server 2008 R2 の累積更新プログラムパッケージ7 注: ビルドは累積的であるため、各新しい修正プログラムには、以前の SQL Server 2008 R2 fix release に含まれていたすべての修正プログラムとセキュリティ修正プログラムが含まれています。 この修正プログラムを含む最新の修正プログラムを適用することを検討することをお勧めします。 詳細については、次のマイクロソフト サポート技術情報番号をクリックしてください。
981356 SQL Server 2008 R2 のリリース後にリリースされた SQL Server 2008 R2 ビルド
回避策
この問題を回避するには、テーブル名を8文字未満に変更します。
状態
マイクロソフトでは、この問題をこの資料の対象製品として記載されているマイクロソフト製品の問題として認識しています。