الأعراض
افترض أن لديك عبارة UPDATE تشير إلى دالة قسم غير موجودة باستخدام الكلمة الأساسية $PARTITION في Microsoft SQL Server 2014 أو 2016 أو 2017. على سبيل المثال،
ملاحظة
تحديث TableName SET ColumnName='xyz' WHERE $PARTITION. NonExistingPartitionFunction(ColumnName) = 1
في هذه الحالة، لا يقوم SQL Server بإجراء تحديث أو إرجاع رسالة خطأ للإشارة إلى أن الكائن NonExistingPartitionFunction غير موجود. ومع ذلك، من منظور المستخدم، يبدو أن عبارة UPDATE يتم تنفيذها بنجاح، ولكنها فشلت في الواقع.
السبب
عند تنفيذ دفعة، قد يقوم SQL Server بإجراء تحليل الاسم المؤجل (DNR). في هذه العملية، لا ينتج عن SQL Server خطأ على الفور عندما يواجه كائنا غير موجود، ويتوقع أن يتم إنشاء الكائن بواسطة الوحدة النمطية أو الدفعة قبل تنفيذ العبارة التي تشير إلى هذا الكائن. بالنسبة لوظائف القسم، لا يتعامل SQL Server مع DNR بشكل صحيح.
المزيد من المعلومات
لمزيد من المعلومات حول DNR، راجع تحليل الاسم المؤجل.
الدقة
تم تصحيح هذه المشكلة في التحديثات التراكمية التالية SQL Server:
التحديث التراكمي 8 SQL Server 2016 SP1
التحديث التراكمي 4 SQL Server 2017
التحديث التراكمي 9 SQL Server 2014 SP2
حول التحديثات التراكمية SQL Server:
يحتوي كل تحديث تراكمي جديد SQL Server على جميع الإصلاحات العاجلة وجميع إصلاحات الأمان التي تم تضمينها مع التحديث التراكمي السابق. اطلع على آخر التحديثات التراكمية SQL Server:
آخر تحديث تراكمي SQL Server 2016
آخر تحديث تراكمي SQL Server 2017
آخر تحديث تراكمي SQL Server 2014
الحالة
لقد أكدت Microsoft على أن هذه مشكلة في منتجات Microsoft المُدرجة في القسم "ينطبق على".
المراجع
تعرّف على المصطلحات التي تستخدمها Microsoft لوصف تحديثات البرامج.