תופעות
נניח שיש לך טבלה עם גורם מפעיל של DML ב-Microsoft SQL Server 2008 R2, SQL Server 2012 או SQL Server 2014 ובגורם מפעיל זה שאתה מצרף לטבלה שנוספה/נמחקה עם טבלאות אחרות. בעת ביצוע משפט DML בטבלה זו, הפרת גישה עלולה להתרחש במהלך קומפילציה של הגורם המפעיל ואתה מקבל את השגיאה הבאה:
אירעה שגיאה חמורה בפקודה הנוכחית. יש להשליך את התוצאות, אם קיימות.
בנוסף, השגיאות הבאות נרשמות ביומן השגיאות של SQL Server:
<Date><Time> spid * * * מחסנית שנשלחה ל<FilePath>\SQLDumpxxx.txt_LT_Date><Time> spid SqlDumpExceptionHandler: תהליך נוצר חריגה מכרעת c0000005 EXCEPTION_ACCESS_VIOLATION. SQL Server מסיים תהליך זה.<Date><Time> spid * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * ** * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * <Date><Time>SPID * התחל DUMP מחסנית: <Date><Time><Date><Time> spid * <Date><Time>spid <Date><Time> Spid *<Date><Time> Spid *_LT_DATE_GT__LT_TIME_GT_ spid * כתובת החריגה = 00000000009E4F2A Module (sqlservr + 00000000002D4F2A)<Date><Time> Spid * קוד החריגה = c0000005 EXCEPTION_ACCESS_VIOLATION<Date><Time> spid * ההפרה של הגישה לכתובת 0000000000000000<Date><Time> spid * מאגר קלט 510 בתים-<Date><Time> spid * SQL_query_code
פתרון
הבעיה נפתרה לראשונה בעדכון המצטבר הבא של SQL Server.
עדכון מצטבר 1 עבור SQL Server 2012 SP2 /en-us/help/2976982
עדכון מצטבר 2 עבור SQL Server 2014 /en-us/help/2967546
עדכון מצטבר 10 עבור SQL Server 2012 SP1 /en-us/help/2954099
עדכון מצטבר 12 עבור SQL Server 2008 R2 SP2 /en-us/help/2938478
כל עדכון מצטבר חדש עבור SQL Server מכיל את כל התיקונים החמים ואת כל תיקוני האבטחה שנכללו בעדכון המצטבר הקודם. עיין בעדכונים המצטברים האחרונים עבור SQL Server:
פתרון
כדי לעקוף את הבעיה, אל תשתמש בטבלה שנוספה/נמחקה ישירות בשאילתה שתצטרף אליה עם טבלאות אחרות, במקום זאת במטמון בטבלה temp והשתמש בטבלה temp בשאילתה.
מצב
Microsoft אישרה שזוהי בעיה במוצרי Microsoft המופיעים בסעיף "חל על".