الأعراض
افترض انك قمت بإنشاء اجراء مخزن يستخدم مؤشر علي متغير جدول في Microsoft SQL Server 2012 أو SQL Server 2014. بالاضافه إلى ذلك ، يقوم الاجراء المخزن بتحديث الجدول باستخدام العبارة WHERE الحالية مع المؤشر. علي سبيل المثال ، قد يكون اجراءك المخزن مشابها لما يلي:
CREATE PROCEDURE dbo.usp_TestSP AS BEGIN DECLARE @TableVar TABLE (SomeInt INT NULL) INSERT @TableVar VALUES (NULL) DECLARE @curInt INT, @newInt INT SET @newInt = 1 DECLARE ccc CURSOR LOCAL FOR SELECT SomeInt FROM @TableVar WHERE SomeInt IS NULL OPEN ccc FETCH NEXT FROM ccc INTO @curInt UPDATE @TableVar SET SomeInt = @newInt WHERE CURRENT OF cccCLOSE ccc SELECT * FROM @TableVar END
عند تنفيذ الاجراء المخزن باستخدام الاجراء المخزن لنظام التشغيل sp_refreshsqlmodule ، قد يحدث خرق في الوصول ، وقد تتلقي رسائل خطا تشبه ما يلي:
الرسالة 596 ، المستوي 21 ، الولاية 1 لا يمكن متابعه التنفيذ لان جلسة العمل في حاله الإنهاء. الرسالة 0 ، المستوي 20 ، الحالة 0 ، حدث خطا هام في الأمر الحالي. يجب تجاهل النتائج ، إذا كانت هناك.
في هذه الحالة ، تتم كتابه الأخطاء المشابهة لما يلي أيضا إلى سجلات أخطاء SQL Server:
التاريخ والوقت. 730 spid51 سقلدومبيكسسيبتيونهاندلير: العملية التي انشاتها 51 الاستثناء الفادح c0000005 EXCEPTION_ACCESS_VIOLATION. SQL Server is terminating this process.date time.730 spid51 * *******************************************************************************date time.730 spid51 *date time.730 spid51 * BEGIN STACK DUMP:date time.730 spid51 * date time spid 51date time.730 spid51 *date time.730 spid51 *date time.730 spid51 * Exception Address = 00007FFC270236D5 Module(sqllang+00000000005036D5)date time.730 spid51 * Exception Code = c0000005 EXCEPTION_ACCESS_VIOLATIONdate time.730 spid51 * Access Violation occurred reading address 0000006F00620074date time.730 spid51 * Input Buffer 136 bytes -date time.730 spid51 * EXECUTE sp_refreshsqlmodule N'[dbo]. [usp_TestSP] ' time 730 spid51 * التاريخ والوقت. 730 spid51 *
الحل
معلومات التحديث التراكمي
تم تصحيح هذه المشكلة في التحديثات التالية:
-
تحديث تراكمي 13 ل SQL server 2014
-
تحديث تراكمي 6 ل SQL Server 2014 service Pack 1 (SP1)
-
تحديث تراكمي 2 ل SQL Server 2012 service Pack 3 (SP3)
-
تحديث تراكمي 11 ل SQL Server 2012 service Pack 2 (SP2)
يحتوي كل تحديث تراكمي جديد ل SQL Server علي كل الإصلاحات العاجلة وكل تصحيحات الأمان التي تم تضمينها في التحديث التراكمي السابق. اطلع علي آخر التحديثات التراكمية ل SQL Server:
الحالة
أقرت Microsoft أن هذه المشكلة تحدث في منتجات Microsoft المسردة في المقطع "تنطبق على".
المراجع
تعرف علي المصطلحات التي تستخدمها Microsoft لوصف تحديثات البرامج.