現在オフラインです。再接続するためにインターネットの接続を待っています

FIX SQL Server 2005 の XML インデックスを再構築した後は、「DBCC CHECKDB」ステートメントまたは"DBCC CHECKTABLE」ステートメント エラーを報告します。

重要: このサポート技術情報 (以下「KB」) は、翻訳者による翻訳の代わりに、マイクロソフト機械翻訳システムによって翻訳されたものです。マイクロソフトは、お客様に、マイクロソフトが提供している全ての KB を日本語でご利用いただけるように、翻訳者による翻訳 KB に加え機械翻訳 KB も提供しています。しかしながら、機械翻訳の品質は翻訳者による翻訳ほど十分ではありません。誤訳や、文法、言葉使い、その他、たとえば日本語を母国語としない方が日本語を話すときに間違えるようなミスを含んでいる可能性があります。マイクロソフトは、機械翻訳の品質、及び KB の内容の誤訳やお客様が KB を利用されたことによって生じた直接または間接的な問題や損害については、いかなる責任も負わないものとします。マイクロソフトは、機械翻訳システムの改善を継続的に行っています。

英語版 KB:974985
Microsoft Microsoft SQL Server 2005年修正プログラム 1 つのダウンロード ファイルとして配布しています。修正プログラムは累積的であるため、各新しいリリースすべての修正プログラムが含まれているし、以前の SQL Server 2005 に含まれていたすべてのセキュリティ修正プログラム リリースを修正します。
現象
次のシナリオを検討してください。
  • Microsoft SQL Server の 2005 年には、XML データ型の列を含むテーブルがあります。
  • 列に XML インデックスを作成します。
  • 実行します。 インデックスを変更します。 ステートメントでは、 再構築します。 句の XML インデックスです。
  • 実行します。 DBCC CHECKDB ステートメントまたは DBCC CHECKTABLE ステートメント テーブルにします。
このシナリオでは、孤立したデータの破損が報告され、次のエラー メッセージが表示されます。
メッセージ 8964、レベル 16、状態 1、行 1
テーブル エラー: オブジェクト ID 965578478、インデックスを ID 1、パーティション ID 72057594042515456、割り当て単位 ID 72057594052083712 (LOB データの種類) に分割します。(1:569)、スロット 0、文字列 ID 1881079808 での外のデータ ノードが参照されていません。

3 行が 1 ページ オブジェクトの"sys.xml_index_nodes_<xxxxxx>"します</xxxxxx>。
解決方法
この問題に対する修正は SQL Server 2005 Service Pack 3 用の累積的な更新 6 で初めてリリースされました。この累積的な更新プログラム パッケージの詳細については、Knowledge Base の資料を参照するのには、次の資料番号をクリックしてください。
974648 SQL Server 2005 Service Pack 3 用の累積的な更新プログラム パッケージ 6
メモ ビルドは累積的であるため、新しい修正プログラム リリースすべての修正プログラムが含まれているし、以前の SQL Server 2005 に含まれていたすべてのセキュリティ修正プログラム リリースを修正します。マイクロソフトはこの修正プログラムを含む最新の修正プログラム リリースを適用を検討することをお勧めします。詳細については、Knowledge Base の資料を参照するのには、次の資料番号をクリックしてください。
960598 SQL Server 2005 Service Pack 3 のリリース後にリリースされた、SQL Server 2005 のビルドします。
Microsoft SQL Server 2005年の特定の SQL Server のサービス パック修正プログラムが作成されます。SQL Server 2005 Service Pack 3 のインストールに SQL Server 2005 Service Pack 3 修正プログラムを適用する必要があります。既定では、SQL Server サービス パックで提供されている修正プログラム SQL Server の次の service pack に含まれてです。
回避策
この問題を回避するには、次の方法のいずれかを使用します。

方法 1

XML インデックスではなく、再作成を削除し、 インデックスを変更します。 ステートメント:

--------START OF THE SCRIPT------------------------Drop table named temp if it exists----------------IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[temp]') AND type in (N'U'))DROP TABLE [dbo].[temp]------------Create a tenp table to keep the information about existing XML indexes------------Create table Temp (object_id int, index_id int, object_name varchar(256), IndexName nvarchar(256),Name nvarchar(256),Secondary_type_desc nvarchar (240),Secondary_type char(1),Using_Xml_index_id int)------------Insert XML index information into temp table----------------Insert Into TempSELECT i.object_id,i.index_id,object_name(i.object_id)as object_name, i.name as IndexName,c.name,i.Secondary_type_desc,i.Secondary_type,i.using_xml_index_id FROM sys.xml_indexes AS iINNER JOIN sys.index_columns AS ic ON i.object_id = ic.object_id AND i.index_id = ic.index_idINNER JOIN sys.columns AS c ON ic.object_id = c.object_id AND c.column_id = ic.column_idOrder by i.index_id-------------Adding a new column for Manipulation------------Alter table temp add IndName varchar(256) NULL;-------------Updating value in column for Manipulation------------Update Temp Set Secondary_type_desc = 'APRIMARY' Where Secondary_type_desc IS NULL-------------Updating value in column for Manupilation------------Update a set a.IndName = b.IndexName from temp a inner join temp b on a.using_xml_index_id = b.index_id and a.object_id = b.object_id-------------Set Ansi_padding ON to create XML indexes------------Set Ansi_Padding ON--------Cursor to Drop existing XML Indexes------------DECLARE XMLIndexDrop CURSOR READ_ONLYFOR select 'Drop Index '+ IndexName +' on '+Object_name from temp where Secondary_type is nullDECLARE @DropString varchar(400)OPEN XMLIndexDropFETCH NEXT FROM XMLIndexDrop INTO @DropStringWHILE (@@fetch_status <> -1)BEGINIF (@@fetch_status <> -2)BEGINexec(@DropString)PRINT @DropStringENDFETCH NEXT FROM XMLIndexDrop INTO @DropStringENDCLOSE XMLIndexDropDEALLOCATE XMLIndexDropGO--------Cursor to Create XML Indexes-------------DECLARE XMLIndexCreate CURSOR READ_ONLY FOR Select 'CREATE ' + Case when Secondary_type_desc = 'APRIMARY' then 'PRIMARY XML'Else 'XML' END + ' INDEX ' + IndexName +' on ' + object_name + ' ('+name+')'+ Case when Secondary_type_desc = 'APRIMARY' then ''Else ' USING XML INDEX ' + IndName + ' FOR ' + Secondary_type_desc END From Temp Order By Secondary_type_desc AscDECLARE @CreateString varchar(400)OPEN XMLIndexCreateFETCH NEXT FROM XMLIndexCreate INTO @CreateString WHILE (@@fetch_status <> -1)BEGINIF (@@fetch_status <> -2)BEGINexec(@CreateString )PRINT @CreateString ENDFETCH NEXT FROM XMLIndexCreate INTO @CreateString ENDCLOSE XMLIndexCreateDEALLOCATE XMLIndexCreateGO--------Closing the cursor----------------------END OF THE SCRIPT-------------- 


方法 2

すべての XML インデックスを削除し、実行、 インデックスを変更します。 ステートメントでは、テーブル内のインデックス。次に、XML インデックスを再作成します。
状況
マイクロソフトでは、この「対象」に記載されているマイクロソフト製品の問題として認識しています。
関連情報
SQL Server の増分サービス モデルの詳細については、Knowledge Base の資料を参照するのには、次の資料番号をクリックしてください。
935897報告された問題に対する修正プログラムを提供するのには、SQL Server チームの増分サービス モデルを利用します。
詳細については SQL Server 2005 Service Pack 3 の入手については、Knowledge Base の資料を参照するのには、次の資料番号をクリックする方法。
913089SQL Server 2005 の最新の service pack を入手する方法
SQL Server 2005 Service Pack 3 (SP3) での新機能および機能強化では、SQL Server 2005 SP3 の詳細については、次のマイクロソフト Web サイトを参照してください。SQL Server 更新プログラムの名前付けスキーマの詳細については、Knowledge Base の資料を参照するのには、次の資料番号をクリックしてください。
822499Microsoft SQL Server のソフトウェア更新プログラム パッケージの新しい命名方式は
ソフトウェアの更新の用語の詳細については、Knowledge Base の資料を参照するのには、次の資料番号をクリックしてください。
824684 マイクロソフトのソフトウェア更新プログラムの説明に使用される一般的な用語の説明

警告: この記事は自動翻訳されています

プロパティ

文書番号:974985 - 最終更新日: 07/20/2011 12:10:00 - リビジョン: 4.0

  • kbfix kbqfe kbexpertiseadvanced kbmt kbsurveynew KB974985 KbMtja
フィードバック