الأعراض
افترض انك أضفت عمودا إلى جدول في Microsoft SQL Server 2012 أو SQL Server 2014. عندما يكون حجم الصف قريبا من الحد الأقصى المسموح به والذي يبلغ 8,060 بايت ، قد تستغرق عمليه الاضافه وقتا طويلا.
السبب
تحدث هذه المشكلة نظرا لان الحجم الإجمالي للصف قريبا من الحد الأقصى لحجم الصف المسموح به ، يقوم SQL Server بفحص كامل للجدول للتاكد من ان أضافه عمود جديد لا ينتهك تكامل البيانات. لا تقوم الإصدارات قبل SQL Server 2012 بهذا الفحص ، ويتم تشغيل لغة تعريف البيانات (DDL) بشكل أسرع. ومع ذلك ، ينتج هذا السلوك فشل العمليات التالية ، مثل تحديث الصف أو التقليص إذا تجاوز حجم الصف الحجم المسموح به.
الحل
يقدم التحديث التراكمي علامة تتبع جديده 647 لسلوك التوافق مع الإصدارات السابقة. تم تصحيح المشكلة أولا في التحديث التراكمي التالي ل SQL Server.
تحديث تراكمي 5 ل SQL Server 2014 /en-us/help/3011055
تحديث تراكمي 12 for SQL Server 2012 SP1 /en-us/help/2991533
تحديث تراكمي 2 ل SQL Server 2012 SP2 /en-us/help/2983175
يحتوي كل تحديث تراكمي جديد ل SQL Server علي كل الإصلاحات العاجلة وكل تصحيحات الأمان التي تم تضمينها في التحديث التراكمي السابق. اطلع علي آخر التحديثات التراكمية ل SQL Server:
مزيد من المعلومات
-
يمكنك تشغيل علامة التتبع 647 باستخدام معلمه بدء التشغيل. للحصول علي معلومات ، راجع خيارات بدء تشغيل خدمه مشغل قاعده البيانات.
-
يمكنك تشغيل الاستعلام التالي (الرجاء استبدال <اسم الجدول> باسم الجدول الفعلي) لاختبار الجدول المحدد قبل العملية الموجودة في نظام الإنتاج ، وتخطيط تاثير هذه المشكلة. إذا كانت النتيجة أكبر من 8,060 ، سيخضع الجدول إلى هذه المشكلة. بالاضافه إلى ذلك ، إذا قمت بإسقاط الاعمده ، ستحتاج إلى تغيير الجدول باستخدام الخيار "أعاده البناء". بإمكان أعاده إنشاء الجدول ان يؤدي إلى ان يقوم الاستعلام بإرجاع النتائج الصحيحة.
select 1+1+2 + 2 + (case when sum (case when leaf_offset < 0 then 1 else 0 end) > 0 then 2 else 0 end) + ( (count (*) + 7)/8 ) + count (case when leaf_offset < 0 then 1 else null end) * 2 + sum( case when max_length=-1 then 24 else max_length end) from sys.system_internals_partition_columns col join sys.partitions par on col.partition_id = par.partition_id where object_id = object_id ('<table name>') and index_id in (0,1) and partition_number =1
-
يمكنك أضافه أعمده الطول المتغير أو الاعمده المتفرقة عند قيام التطبيق باضافه أعمده جديده إلى الجدول بشكل متكرر. انها عمليه بيانات تعريف فقط لا يمكن ان يتجاوز إجمالي حجم كل الاعمده 8,060 بايت.
الحالة
أقرت Microsoft أن هذه المشكلة تحدث في منتجات Microsoft المسردة في المقطع "تنطبق على".