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

الأعراض

افترض أنك تستخدم Microsoft SQL Server 2016 أو 2017. عند معالجة معاملات البيانات المحسنة للذاكرة باستخدام متغيرات الجدول المحسنة للذاكرة مع عبارة where exists ، قد تحصل على نتيجة خاطئة.

على سبيل المثال:

الخطوة 1: إنشاء قاعدة بيانات وجدول محسن للذاكرة.

إنشاء عرض توضيحي لقاعدة البيانات

عرض توضيحي ل ALTER DATABASE ADD FILEGROUP demo_mod يحتوي على MEMORY_OPTIMIZED_DATA 

العرض التوضيحي ALTER DATABASE ADD FILE (name='demo_mod1', filename='C:\DATA\demo_mod1') to FILEGROUP demo_mod 

استخدام العرض التوضيحي

الذهاب

CREATE TYPE dbo. IN_MEMORY_TABLE_TYPE AS TABLE

( source_col INT NULL،

target_col INT ليس NULL

فهرس ix_InMemoryTable غير متفاوت المسافات (target_col)

) مع (MEMORY_OPTIMIZED = ON)

الذهاب

الخطوة 2: إدراج البيانات وتحديث البيانات.

DECLARE @t dbo. IN_MEMORY_TABLE_TYPE

INSERT @t ( source_col, target_col ) VALUES (10, 0),(0, 0)

حدد * من @t

UPDATE r1 SET target_col = -1 FROM @t r1

WHERE EXISTS ( SELECT * FROM @t r2 WHERE r2.source_col > 0 )

SELECT * FROM @t

الذهاب

الخطوة 3: تحقق من النتائج.

النتائج الفعلية: لا يتم تحديث كافة صفوف متغير الجدول @t .

source_col | target_col

----------------------

10 | -1

0 | 0

النتائج المتوقعة: يجب تحديث جميع الصفوف للحصول على target_col = -1.

source_col | target_col

----------------------

10 | -1

0 | -1.

الحل

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

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

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

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

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

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

الحالة

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

المراجع

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

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

الخروج من الخيارات إضافية؟

استكشف مزايا الاشتراك، واستعرض الدورات التدريبية، وتعرف على كيفية تأمين جهازك، والمزيد.