الأعراض
افترض ان لديك جدول Microsoft SQL Server يتضمن فهرسا واحدا أو أكثر تم إنشاؤه عليه. عندما تقوم بالاستعلام مقابل الجدول ، قد ينفذ SQL Server مساحة البيانات غير المتناسقة للاعمده الثنائية والاعمده. يعتمد السلوك غير المتناسق لإرجاع الفراغات اللاحقة في نهاية أعمده البيانات الثنائية والأحرف التالية:
-
إعدادات الANSI_PADDING عند إنشاء الاعمده في جدول SQL Server.
-
القرار الذي يؤدي إلى اجراء مسح ضوئي للجدول أو الفهرس البحث في الاعمده.
السبب
في بعض السيناريوهات ، قد يقوم SQL Server بتنفيذ تحسين يسمح له بتجاوز العديد من العمليات للحصول علي تسليم أسرع للبيانات. تحدث هذه المشكلة لان SQL Server لا يتعرف علي انه يتعذر تطبيق التحسين للسيناريو أعلاه.
مزيد من المعلومات
لا يتوافق هذا السلوك من SQL Server مع السلوك الموثق في المقالة التالية: استخدام بيانات Char و Varchar.
إذا كان الANSI_PADDING قيد التشغيل عندما يتم إنشاء عمود بقيمه فارغه ، سيسلك هذا الأمر نفسه الذي يشير إلى انه عمود بلا قيمه فارغه: تتم تعبئة القيم باليمين بحجم العمود. إذا تم إيقاف تشغيل الANSI_PADDING عند إنشاء عمود خال من الأحرف ، فانه يسلك سلوك العمود varchar مع الANSI_PADDING التي تم تعيينها: يتم اقتطاع الفراغات اللاحقة.
الحل
تم تصحيح هذه المشكلة في التحديثات التراكمية التالية ل SQL Server:
تحديث تراكمي 2 ل SQL Server 2017
تحديث تراكمي 9 ل SQL Server 2016
تحديث تراكمي 6 ل SQL Server 2016 SP1
يحتوي كل تحديث تراكمي جديد ل SQL Server علي كل الإصلاحات العاجلة وكل تصحيحات الأمان التي تم تضمينها في التحديث التراكمي السابق. اطلع علي آخر التحديثات التراكمية ل SQL Server:
آخر تحديث تراكمي ل SQL Server 2017
الحالة
أقر Microsoft ان هذه المشكلة في منتجات Microsoft المسرده في القسم "ينطبق علي"
المراجع
تعرف علي المصطلحاتالتي تستخدمها Microsoft لوصف تحديثات البرامج.