KB4055758 - FIX: سلوك غير متناسق لإرجاع الفراغات اللاحقة في نهاية بيانات CHAR و BINARY في SQL Server

ينطبق على
SQL Server 2016 Developer - duplicate (do not use) SQL Server 2016 Enterprise - duplicate (do not use) SQL Server 2016 Enterprise Core - duplicate (do not use) SQL Server 2016 Standard - duplicate (do not use) SQL Server 2016 Service Pack 1 SQL Server 2014 Developer - duplicate (do not use) SQL Server 2014 Enterprise - duplicate (do not use) SQL Server 2014 Enterprise Core - duplicate (do not use) SQL Server 2014 Standard - duplicate (do not use) SQL Server 2014 Service Pack 2 - duplicate (do not use) SQL Server 2017 Developer on Windows SQL Server 2017 Enterprise on Windows SQL Server 2017 Enterprise Core on Windows SQL Server 2017 Standard on Windows

الأعراض

افترض أن لديك جدول Microsoft SQL Server يحتوي على فهرس واحد أو أكثر مبني عليه. عند الاستعلام مقابل الجدول، قد يقوم SQL Server بإجراء مساحة بيانات غير متناسقة لأعمدة CHAR و BINARY. يعتمد السلوك غير المتسق لإرجاع الفراغات اللاحقة في نهاية أعمدة البيانات CHAR و BINARY على الشروط التالية:

  • إعدادات ANSI_PADDING عند إنشاء أعمدة في الجدول SQL Server.
  • قرار إجراء فحص الجدول أو البحث عن الفهرس على الأعمدة.

السبب

في بعض السيناريوهات، قد يقوم SQL Server بإجراء تحسين يسمح له بتجاوز العديد من العمليات لتسليم البيانات بشكل أسرع. تحدث المشكلة لأن SQL Server لا يتعرف على أنه لا يمكن تطبيق التحسين للسيناريو أعلاه.

المزيد من المعلومات

لا يتوافق سلوك SQL Server هذا مع السلوك الموثق في المقالة التالية: استخدام بيانات Char و Varchar.

ملاحظة

إذا كان ANSI_PADDING قيد التشغيل عند إنشاء عمود char NULL، فإنه يتصرف بنفس سلوك عمود char NOT NULL: تتم إضافة القيم بزر الماوس الأيمن إلى حجم العمود. إذا كان ANSI_PADDING متوقفا عن التشغيل عند إنشاء عمود char NULL، فإنه يتصرف مثل عمود varchar مع تعيين ANSI_PADDING إيقاف التشغيل: يتم اقتطاع الفراغات اللاحقة.

الدقة

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

التحديث التراكمي 2 SQL Server 2017

التحديث التراكمي 9 SQL Server 2016

التحديث التراكمي 6 SQL Server 2016 SP1

التحديث التراكمي 8 SQL Server 2014 SP2

التحديث التراكمي 7 SQL Server 2014 SP1

حول التحديثات التراكمية SQL Server:

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

آخر تحديث تراكمي SQL Server 2017

آخر تحديث تراكمي SQL Server 2016

آخر تحديث تراكمي SQL Server 2014

الحالة

أكدت Microsoft أن هذه مشكلة في منتجات Microsoft المدرجة في قسم "ينطبق على"

المراجع

تعرّف على المصطلحات التي تستخدمها Microsoft لوصف تحديثات البرامج.