تصحيح: العمود قد حذف البيانات عندما تقوم بتحديث عمود ذو طول متغير آخر في جدول قاعدة بيانات الترقية من SQL Server 2005

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

اضغط هنا لرابط المقالة باللغة الانجليزية3120595
الأعراض
عندما تقوم بتحديث قيمة في عمود بيانات متغيرة الطول في جدول قاعدة البيانات التي تمت ترقيتها من نظام التشغيل Microsoft SQL Server 2005، يتم حذف البيانات الموجودة في العمود ذو طول متغير آخر في نفس الصف.

تحدث هذه المشكلة في Microsoft SQL Server 2014 و Microsoft SQL Server 2012. قد يعرض السيناريو التالي قاعدة بيانات لهذه المشكلة. وتمثل هذه القائمة تسلسل الأحداث:

  • يتم إنشاء قاعدة بيانات في SQL Server 2005.
  • في SQL Server 2005، قيامك بتعديل جدول، ومن ثم إسقاط أعمدة طول متغير واحد أو أكثر في نهاية تعريف الجدول.
  • يمكنك إضافة أعمدة جديدة متغيرة الطول التي تحتوي على نوع بيانات مشابهة وطول أعمدة المسلمة.
  • يتم ترقية قاعدة البيانات من SQL Server 2005 إلى 2014 ملقم SQL أو SQL Server 2012.
  • تقوم بتحديث قيمة عمود ذو طول متغير آخر فيما بعد، والبيانات المحدثة تجاوز إلى صفحة جديدة.
في هذا السيناريو، قد يتم حذف البيانات الموجودة في واحد أو أكثر من الأعمدة المضافة حديثا في نفس الصف.

يمكنك استخدام البرامج النصية في مزيد من المعلومات مقطع للتحقق من ما يلي:

  • ما إذا كانت أية جداول في قاعدة بيانات معين بحذف الأعمدة متغيرة الطول
  • ما إذا كانت الأعمدة متغيرة الطول إضافية تم إنشاؤها التي تحتوي على مطابقة إزاحة
ملاحظة: لم يتم اكتشاف هذه المشكلة عن طريق DBCC CHECKDB.
الحل
ملاحظة: يمنع هذا الإصلاح المستقبلية تواجدات المشكلة فقط.

هامة: إذا كنت تقوم بالترقية قاعدة البيانات من SQL Server 2005 إلى 2014 ملقم SQL أو SQL Server 2012، تأكد من الرجوع إلى قسم "الحل البديل".

تم تصحيح هذه المشكلة أولاً في التحديث التراكمي التالية ل SQL Server:

هذه هي أحدث التحديثات التراكمية لهذه الإصدارات من برنامج.

توصية: تثبيت آخر تحديث تراكمي ل SQL Server 2014 أو SQL Server 2012

تثبيت كل جديد تحديث تراكمي ل SQL Server على كافة الإصلاحات العاجلة وكافة إصلاحات الأمان التي تم تضمينها في التحديث التراكمي السابق. تحقق من أحدث التحديثات التراكمية ل SQL Server:



ملاحظة: لمزيد من المعلومات حول أحدث البنيات SQL Server، راجع أين يمكن العثور على مزيد من المعلومات حول SQL Server أحدث البنيات.
الحل البديل
هامة: تطبيق هذا الحل البديل عند ترقية قاعدة البيانات من SQL Server 2005 إلى 2014 ملقم SQL أو SQL Server 2012 وقبل السماح لعبارات تحديث تشغيلها في ترقية قاعدة البيانات.

للتغلب على هذه المشكلة إذا قمت بإفلات الأعمدة في جدول، تأكد من القيام بأي مما يلي قبل تحديث أو حذف الصفوف:

  • إعادة إنشاء فهرس متفاوت المسافات باستخدام "تغيير الفهرس" (...) إعادة بناء
  • إعادة إنشاء كومة الذاكرة المؤقتة باستخدام ALTER TABLE (...) إعادة بناء

معلومات أخرى
يمكنك استخدام البرنامج النصي التالي للتحقق من ما إذا كان أي جدول في قاعدة بيانات معين بحذف الأعمدة التي من المحتمل أن تتأثر بهذه المشكلة.

ملاحظة: إذا كان البرنامج النصي بإرجاع أية صفوف، وهذا يعني أن يتم تطبيق هذه المشكلة حاليا لأي جدول في النظام الخاص بك.
SELECT DISTINCT OBJECT_NAME(sp.[object_id]) AS TableWithDroppedColsFROM sys.system_internals_partition_columns sipc1 WITH (NOLOCK)INNER JOIN sys.system_internals_partition_columns sipc2 WITH (NOLOCK)       ON sipc1.[partition_id] = sipc2.[partition_id] AND              sipc1.leaf_offset = sipc2.leaf_offset AND              sipc1.leaf_offset < 0 AND               sipc1.is_dropped < sipc2.is_droppedINNER JOIN sys.partitions sp WITH (NOLOCK) ON sipc1.[partition_id] = sp.[partition_id];

هامة: يجب استخدام هذا البرنامج النصي فقط لغرض ونطاق هذه المادة.
تصريح
أقرت Microsoft أن هذه مشكلة في منتجات Microsoft المسردة في قسم "ينطبق على".

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

خصائص

رقم الموضوع: 3120595 - آخر مراجعة: 05/31/2016 09:09:00 - المراجعة: 13.0

Microsoft SQL Server 2012 Developer, Microsoft SQL Server 2012 Enterprise, Microsoft SQL Server 2012 Standard, Microsoft SQL Server 2014 Service Pack 1, Microsoft SQL Server 2014 Developer, Microsoft SQL Server 2014 Enterprise, Microsoft SQL Server 2014 Standard

  • kbqfe kbfix kbexpertiseinter kbsurveynew kbmt KB3120595 KbMtar
تعليقات