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

الأعراض

افترض ان لديك جمله UPDATE التي تشير إلى داله قسم غير موجودة باستخدام الكلمة الاساسيه $PARTITION في Microsoft SQL server 2014 أو 2016 أو 2017. على سبيل المثال

تحديث TableName SET ColumnName= ' xyz ' حيث $PARTITION. نونيكسيستينجبارتيتيونفونكشن (ColumnName) = 1

في هذه الحالة ، لا ينفذ SQL Server تحديثا أو يرجع رسالة خطا للاشاره إلى ان عنصر نونيكسيستينجبارتيتيونفونكتيون غير موجود. ومع ذلك ، يبدو ان عبارة UPDATE قد تم تنفيذها بنجاح ، ولكنها فشلت بالفعل.

السبب

عند تنفيذ دفعه ، قد ينفذ SQL Server تحليل الاسم المؤجل (دنر). في هذه العملية ، لا يصدر SQL Server علي الفور اي خطا عند مصادفه عنصر غير موجود ، ويتوقع ان يتم إنشاء الكائن بواسطة الوحدة النمطية أو الدفعة قبل تنفيذ الجملة التي تشير إلى هذا الكائن. بالنسبة إلى دالات الأقسام ، لا يعالج SQL Server دنر بشكل صحيح.

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

للحصول علي مزيد من المعلومات حول دنر ، راجع تحليل الأسماء المؤجلة.

الحل

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

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

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

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

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

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

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

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

الحالة

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

المراجع

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

هل تحتاج إلى مزيد من المساعدة؟

توسيع المهارات
استكشاف التدريب
الحصول على الميزات الجديدة أولاً
الانضمام إلى Microsoft Insider

هل كانت المعلومات مفيدة؟

نشكرك على ملاحظاتك!

شكراً لك على الملاحظات! يبدو أنه من المفيد إيصالك بأحد وكلاء دعم Office لدينا.

×