KB4046745 - إصلاح: فشل عبارة UPDATE بصمت عند الإشارة إلى دالة قسم غير موجودة في عبارة WHERE في SQL Server 2014 أو 2016 أو 2017

ينطبق على
SQL Server 2014 Service Pack 2 - duplicate (do not use) 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 2017 Developer SQL Server 2017 Enterprise Core SQL Server 2017 Enterprise SQL Server 2016 Service Pack 1 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)

الأعراض

افترض أن لديك عبارة 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 لوصف تحديثات البرامج.