أنت غير متصل حاليًا، وفي انتظار الإنترنت الخاص بك ليقوم بإعادة الاتصال

FIX: جملة "DBCC CHECKDB" أو عبارة "DBCC CHECKTABLE" عن الأخطاء بعد إعادة إنشاء فهرس XML في SQL Server 2005

هام: تمت ترجمة هذا المقال باستخدام برنامج ترجمة آلية لشركة مايكروسوفت بدلاً من الاستعانة بمترجم بشري. تقدم شركة مايكروسوفت كلاً من المقالات المترجمة بواسطة المترجمين البشر والمقالات المترجمة آليًا وبالتالي ستتمكن من الوصول إلى كل المقالات الموجودة في قاعدة المعرفة الخاصة بنا وباللغة الخاصة بك. بالرغم من ذلك، فإن المقالة المترجمة آليًا لا تكون دقيقة دائمًا وقد تحتوي على أخطاء إملائية أو لغوية أو نحوية، مثل تلك الأخطاء الصادرة عن متحدث أجنبي عندما يتحدث بلغتك. لا تتحمل شركة مايكروسوفت مسئولية عدم الدقة أو الأخطاء أو الضرر الناتج عن أية أخطاء في ترجمة المحتوى أو استخدامه من قبل عملائنا. تعمل شركة مايكروسوفت باستمرار على ترقية برنامج الترجمة الآلية

اضغط هنا لرابط المقالة باللغة الانجليزية974985
بتوزيع Microsoft SQL Server 2005 الإصلاحات كملف واحد يمكن تنزيلها. لأن الإصلاحات تراكمية، يتضمن كل إصدار جديد كافة الإصلاحات العاجلة وأصلح كافة تصحيحات الأمان التي تم تضمينها مع SQL Server 2005 السابقة الإصدار.
الأعراض
اطلع على السيناريو التالي:
  • في Microsoft SQL Server 2005 لديك جدول يحتوي على عمود ذو نوع بيانات XML.
  • إنشاء فهرس XML في العمود.
  • تنفيذ عبارة ALTER INDEX مع جملة إعادة بناء على فهرس XML.
  • تشغيل عبارة CHECKDB DBCC أو عبارة CHECKTABLE DBCC على الجدول.
في هذا السيناريو، يتم الإعلام عنها فساد البيانات معزولة وظهور رسالة الخطأ التالية:
msg 8964 ، مستوى 16 حالة 1، السطر الأول
خطأ جدول: كائن معرف 965578478 أو فهرسة 1 معرف أو تقسيم 72057594042515456 معرف وحدة التخصيص 72057594052083712 معرّف (نوع البيانات LOB). لا تتم الإشارة إلى العقدة ذو صف بيانات في صفحة (1:569) أو الفتحة 0 أو نص 1881079808 معرف.

هناك 3 صفوف في صفحات 1 لكائن "sys.xml_index_nodes_ <xxxxxx>".
الحل
تم إصدار الإصلاح الخاص بهذه المشكلة لأول مرة في التحديث التراكمي 6 لنظام SQL Server 2005 المزود بحزمة الخدمة Service Pack 3. لمزيد من المعلومات حول حزمة التحديث التراكمي هذه انقر فوق رقم المقالة التالي لعرضها في "قاعدة المعارف لـ Microsoft" (ينتقل بك هذا الارتباط إلى صفحة قد يكون محتواها كله أو جزء منه باللغة الإنجليزية):
974648حزمة التحديث التراكمي 6 SQL Server 2005 المزود بحزمة الخدمة Service Pack 3
ملاحظة لأن وبالطريقة تراكمية، يتضمن كل إصدار إصلاح جديد كافة الإصلاحات العاجلة وأصلح كافة تصحيحات الأمان التي تم تضمينها مع SQL Server 2005 السابقة الإصدار. توصي Microsoft مراعاة تطبيق أحدث إصدار الإصلاح الذي يحتوي على هذا الإصلاح العاجل. لمزيد من المعلومات، انقر فوق رقم المقالة التالي لعرضها في "قاعدة المعارف لـ Microsoft" (ينتقل بك هذا الارتباط إلى صفحة قد يكون محتواها كله أو جزء منه باللغة الإنجليزية):
960598بناء SQL Server 2005 التي تم إصدارها بعد إصدار SQL Server 2005 المزود بحزمة الخدمة Service Pack 3
Microsoft SQL Server 2005 يتم إنشاء الإصلاحات العاجلة حزم خدمة SQL Server معينة. يجب تطبيق الإصلاح عاجل SQL Server 2005 المزود بحزمة الخدمة Service Pack 3 إلى تثبيت SQL Server 2005 المزود بحزمة الخدمة Service Pack 3. بشكل افتراضي، يتم تضمين الإصلاحات الجديدة المتوفرة في حزمة خدمة لـ SQL Server في حزمة خدمة لـ SQL Server التالية.
الحل البديل
كمحاولة للتغلب على هذه المشكلة استخدم إحدى الطريقتين التاليتين:

الطريقة الأولى

إفلات ثم إعادة إنشاء الفهرس XML بدلاً من تشغيل عبارة ALTER INDEX:

--------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 ثم قم بتشغيل عبارة ALTER INDEX على الفهارس في الجدول. بعد ذلك، قم بإعادة إنشاء فهارس XML.
تصريح
أقرت Microsoft أن هذه مشكلة في منتجات Microsoft المسردة في قسم "تنطبق على".
مراجع
لمزيد من المعلومات حول "نموذج تقديم تزايدي" لـ SQL Server، انقر فوق رقم المقالة التالي لعرضها في "قاعدة المعارف لـ Microsoft" (ينتقل بك هذا الارتباط إلى صفحة قد يكون محتواها كله أو جزء منه باللغة الإنجليزية):
935897يتوفر "نموذج تقديم تزايدي" من فريق SQL Server لتسليم الإصلاحات العاجلة لمشكلات تم الإبلاغ عنها
لمزيد من المعلومات حول كيفية الحصول على SQL Server 2005 المزود بحزمة الخدمة Service Pack 3 انقر فوق رقم المقالة التالي لعرضها في "قاعدة المعارف لـ Microsoft" (ينتقل بك هذا الارتباط إلى صفحة قد يكون محتواها كله أو جزء منه باللغة الإنجليزية):
913089كيفية الحصول على أحدث حزمة خدمة لـ SQL Server 2005
لمزيد من المعلومات حول الميزات الجديدة في SQL Server 2005 المزود بحزمة الخدمة Service Pack 3 (SP3) التحسينات الموجودة في SQL Server 2005 المزود بحزمة الخدمة SP3 قم بزيارة موقع Microsoft التالي على الويب: لمزيد من المعلومات حول مخطط التسمية لتحديثات SQL Server انقر فوق رقم المقالة التالي لعرضها في "قاعدة المعارف لـ Microsoft" (ينتقل بك هذا الارتباط إلى صفحة قد يكون محتواها كله أو جزء منه باللغة الإنجليزية):
822499مخطط تسمية جديدة حزم تحديثات برامج Microsoft SQL Server
لمزيد من المعلومات حول مصطلحات تحديث البرامج "، انقر فوق رقم المقالة التالي لعرضها في" قاعدة المعارف لـ Microsoft "(ينتقل بك هذا الارتباط إلى صفحة قد يكون محتواها كله أو جزء منه باللغة الإنجليزية):
824684وصف للمصطلحات القياسية المستخدمة لوصف تحديثات برامج Microsoft

تحذير: تمت ترجمة هذه المقالة تلقائيًا

خصائص

رقم الموضوع: 974985 - آخر مراجعة: 04/26/2010 17:52:43 - المراجعة: 2.0

Microsoft SQL Server 2005 Standard Edition, Microsoft SQL Server 2005 Enterprise Edition, Microsoft SQL Server 2005 Developer Edition, Microsoft SQL Server 2005 Workgroup Edition, Microsoft SQL Server 2005 Standard X64 Edition, Microsoft SQL Server 2005 Standard Edition for Itanium Based Systems, Microsoft SQL Server 2005 Enterprise X64 Edition, Microsoft SQL Server 2005 Enterprise Edition for Itanium Based Systems

  • kbmt kbsurveynew kbexpertiseadvanced kbqfe kbfix KB974985 KbMtar
تعليقات
=">mp;t=">