KB3042135 - תיקון: הפרת גישה ושגיאת "קוד זה לא צריך להעלות חריגים" מתרחשות בעת שימוש ב SQL Server 2012 או SQL Server 2014

חל על
SQL Server 2012 Developer SQL Server 2012 Enterprise SQL Server 2012 Standard SQL Server 2014 Developer - duplicate (do not use) SQL Server 2014 Enterprise - duplicate (do not use) SQL Server 2014 Standard - duplicate (do not use)

סימפטומים

נניח שאתה משתמש ב- Microsoft SQL Server 2012 או ב- SQL Server 2014. כאשר מתרחש מבוי סתום ב SQL Server, מתקבלת הפרת הגישה הבאה הנגרמת על-ידי צג המבוי הסתום:

הערה

sqldk! CSlotGroup::P shRelease
sqldk! CSlotPageMgr::שחרור
sqllang!commondelete
sqllang!delete[]
sqllang! CTraceDataSTVF::InternalReleaseResources
sqllang! TTableBase<CTraceDataSTVFInfo>::ReleaseResources
sqllang! CTraceDataSTVF::{dtor}
sqllang! CTraceDataSTVF::'סקלרי מחיקה הורסת'
sqlmin! CSTVFInternal::שחרור
sqlmin! CQueryExecContext::~CQueryExecContext
sqlmin! CQueryInstance::ShutdownQueryExecContext
sqlmin! CQueryScan::ShutdownQueryExecContext
sqlmin! CQueryScan::D estroyQueryOnException
sqllang! CXStmtQuery::ShutdownOnException
sqllang! CXStmtQuery::FinishOnExceptionImp
sqllang! GetInterruptTicks
sqllang! InterruptTicks לא חתום<__int64>::LoadTicks
sqllang! <SOS_Ticks InterruptTicks לא חתום<__int64>,-3>::LoadTicks
sqllang!'CMsqlExecContext::FExecute'::'1'::catch$3
MSVCR100!_CallSettingFrame
MSVCR100!__CxxCallCatchBlock
ntdll! RcFrameConsolidation
sqllang! CMsqlExecContext::FExecute
sqllang! CSQLSource::Execute
sqllang! CStmtExecProc::XretLocalExec
sqllang! CStmtExecProc::XretExecExecute
sqllang! CXStmtExecProc::XretExecute
sqllang! CExecStmtLoopVars::ExecuteXStmtAndSetXretReturn
sqllang! CMsqlExecContext::ExecuteStmts<1,0>
sqllang! CMsqlExecContext::FExecute
sqllang! CSQLSource::Execute
sqllang! ExecuteSQL
sqllang! CSpecProc::ExecuteSpecial
sqllang! CSpecProc::Execute
sqllang!process_request
sqllang!process_commands
sqldk! SOS_Task::P aram::Execute
sqldk! SOS_Scheduler::RunTask
sqldk! SOS_Scheduler::P rocessTasks
sqldk! SchedulerManager::WorkerEntryPoint
sqldk! SystemThread::RunWorker
sqldk! SystemThreadDispatcher::P rocessWorker
sqldk! SchedulerManager::ThreadEntryPoint
kernel32! BaseThreadInitThunk
ntdll! RtlUserThreadStart

לאחר הפרת הגישה, מתקבלת הודעת השגיאה הבאה מיומן השגיאות של SQL Server:

הערה

< תאריך><שעה> spid<ID> שימוש בגירסה 'dbghelp.dll' '4.0.5'
< תאריך><שעה> spid<ID> **שרשור dump - spid = <מזהה>, EC = 0x0000007F8608E160
< תאריך><שעה> spid<ID> ***Stack Dump נשלח אל <File Path>\<Dump FileName>.txt
< תאריך><שעה> spid<ID> * *******************************************************************************
< תאריך><שעה> spid<ID> *
< תאריך><שעה>מזהה> SPID< * התחל השלכת מחסנית:
< תאריך><שעה> spid<ID> * <Date><Time> spid <ID ID>
< תאריך><שעה> spid<ID> *
< תאריך><שעה> spid<ID> * מיקום: qxcntxt.cpp:1143
< תאריך><שעה> spid<ID> * ביטוי: !" אין להעלות חריגים על ידי קוד זה"
< תאריך><שעה> spid<ID> * SPID: <מזהה>
< תאריך><שעה>מזהה> spid< * מזהה תהליך: 3556
< תאריך><שעה> spid<ID> *
< תאריך><שעה>מזהה> spid< * מאגר קלט 37 בתים -
< תאריך><שעה>מזהה> spid< * 16 00 00 00 12 00 00 00 02 00 00 00 00 00 00 00 00 00 00 00 00 00
< תאריך><שעה> spid<ID> * ÿÿ & 01 00 00 00 ff 0c 00 00 00 00 00 00 26 04 04 05 00 00
< תאריך><שעה>מזהה> spid< * 00
< תאריך><שעה> spid<ID> *
< תאריך><שעה> spid<ID> *
...
< תאריך><שעה> spid<ID> Stack Signature for the dump is 0x000000014202549F
< תאריך><שעה> spid<ID> [INFO] Identity Begin End | שגיאת תוצאת מצב ספקולציה מוכנה LazyCommit לקריאה בלבד | ThreadId של מסד נתונים של טרנזקציות | ReadSet WriteSet ScanSet SavePoint LogSizeRq | CommitDep TotalComm תלוי 0 תלוי 1 תלוי 2 תלוי 3 תלוי 4 תלוי 5 תלוי 6 תלוי 7 | מיקום האזור |
< תאריך><שעה> מזהה spid<> זמן קצוב ממתין לתהליך dump חיצוני 11800.

< תאריך><שעה> שגיאתמזהה> spid<: 17066, חומרה: 16, מצב: 1.
< תאריך><שעה>מזהה> spid< SQL Server קביעה: קובץ: <qxcntxt.cpp>, שורה=1143 קביעה נכשלת = '!" אין להעלות חריגים על ידי קוד זה"'. ייתכן שהשגיאה קשורה לתזמון. אם השגיאה נמשכת לאחר הפעלה חוזרת של המשפט, השתמש ב- DBCC CHECKDB כדי לבדוק את תקינות המבנית במסד הנתונים, או הפעל מחדש את השרת כדי להבטיח שמבני נתונים בזיכרון אינם פגומים.

      

פתרון

מידע עדכון מצטבר

הבעיה תוקנה לראשונה בעדכון המצטבר הבא של SQL Server.

המלצה: התקן את העדכון המצטבר האחרון עבור SQL Server

כל עדכון מצטבר חדש עבור SQL SQL Server מכיל את כל התיקונים החמים ואת כל תיקוני האבטחה שנכללו בעדכון המצטבר הקודם. מומלץ להוריד ולהתקין את העדכונים המצטברים האחרונים עבור SQL Server:

      

מצב

Microsoft אישרה שזוהי בעיה במוצרי Microsoft המפורטים בסעיף "חל על".