Oprava: Narušení přístupu a "bez výjimek je zvýšit tento kód" Chyba dochází při použití SQL Server 2012 a SQL Server 2014

DŮLEŽITÉ: Tento článek je přeložen pomocí softwaru na strojový překlad Microsoft. Nepřesný či chybný překlad lze opravit prostřednictvím technologie Community Translation Framework (CTF). Microsoft nabízí strojově přeložené, komunitou dodatečně upravované články, a články přeložené lidmi s cílem zajistit přístup ke všem článkům v naší znalostní bázi ve více jazycích. Strojově přeložené a dodatečně upravované články mohou obsahovat chyby ve slovníku, syntaxi a gramatice. Společnost Microsoft není odpovědná za jakékoliv nepřesnosti, chyby nebo škody způsobené nesprávným překladem obsahu nebo jeho použitím našimi zákazníky. Více o CTF naleznete na http://support.microsoft.com/gp/machine-translation-corrections/cs.

Projděte si také anglickou verzi článku: 3042135
Příznaky
Předpokládejme, že používáte Microsoft SQL Server 2012 a SQL Server 2014. Dojde-li k zablokování v SQL Server, zobrazí následující narušení přístupu, který je způsoben zablokování monitoru:
sqldk! CSlotGroup::PshRelease
sqldk! CSlotPageMgr::Release
sqllang! commondelete
sqllang! odstranit]
sqllang! CTraceDataSTVF::InternalReleaseResources
sqllang! TTableBase<CTraceDataSTVFInfo>:: ReleaseResources</CTraceDataSTVFInfo>
sqllang! CTraceDataSTVF:: {dtor}
sqllang! CTraceDataSTVF:: "skalární odstraňování destruktoru.
sqlmin! CSTVFInternal::Release
sqlmin! CQueryExecContext:: ~ CQueryExecContext
sqlmin! CQueryInstance::ShutdownQueryExecContext
sqlmin! CQueryScan::ShutdownQueryExecContext
sqlmin! CQueryScan::DestroyQueryOnException
sqllang! CXStmtQuery::ShutdownOnException
sqllang! CXStmtQuery::FinishOnExceptionImp
sqllang! GetInterruptTicks
sqllang! InterruptTicks<unsigned __int64="">:: LoadTicks</unsigned>
sqllang! SOS_Ticks<><unsigned __int64="">-3, >:: LoadTicks</unsigned>
sqllang! 'CMsqlExecContext::FExecute':: '1':: skutečné$ 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></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::param:: provést
sqldk! SOS_Scheduler::RunTask
sqldk! SOS_Scheduler::ProcessTasks
sqldk! SchedulerManager::WorkerEntryPoint
sqldk! SystemThread::RunWorker
sqldk! SystemThreadDispatcher::ProcessWorker
sqldk! SchedulerManager::ThreadEntryPoint
Kernel32! BaseThreadInitThunk
Ntdll! RtlUserThreadStart
Po narušení přístupu zobrazí následující chybová zpráva v protokolu chyb serveru SQL Server:
Datum>Čas> spidID> Pomocí 'dbghelp.dll' verze "4.0.5."
Datum>Čas> spidID> ** Výpis stavu podprocesu - spid =ID>, ES = 0X0000007F8608E160
Datum>Čas> spidID> *** Odesílán výpis zásobníkuCesta k souboru>\Název souboru s výpisem stavu paměti> TXT
Datum>Čas> spidID> * *******************************************************************************
Datum>Čas> spidID> *
Datum>Čas> spidID> * BEGIN VÝPIS ZÁSOBNÍKU:
Datum>Čas> spidID> *Datum>Čas> spidID>
Datum>Čas> spidID> *
Datum>Čas> spidID> * Umístění: qxcntxt.cpp:1143
Datum>Čas> spidID> * Výraz:! " Tento kód by měla být zvýšena bez výjimek"
Datum>Čas> spidID> * SPID:ID>
Datum>Čas> spidID> * ID procesu: 3556
Datum>Čas> spidID> *
Datum>Čas> spidID> * Vstupní vyrovnávací paměti 37 bajtů -
Datum>Čas> spidID> * 16 00 00 00 12 00 00 00 02 00 00 00 00 00 00 00 00 00
Datum>Čas> spidID> * ÿÿ & 01 00 00 00 ff ff 0c 00 00 00 00 00 26 04 04 05 00 00
Datum>Čas> spidID> * 00
Datum>Čas> spidID> *
Datum>Čas> spidID> *
...
Datum>Čas> spidID> Zásobníku podpis pro výpis stavu je 0x000000014202549F
Datum>Čas> spidID> [INFO] Identity Begin End | Chyba stavu výsledek Speculate připravené LazyCommit ReadOnly | ThreadId transakce databáze | ReadSet WriteSet ScanSet uloženého bodu LogSizeRq | CommitDep TotalComm závislé 0 závislé 1 závislé 2 závislé 3 závislé 4 závislé 5 závislé 6 závislé 7 | Umístění oblasti |
Datum>Čas> spidID> Časový limit pro externí výpis stavu procesu 11800.

Datum>Čas> spidID> Chyba: 17066, závažnosti: 16, stav: 1.
Datum>Čas> spidID> Výraz SQL Server: soubor: <qxcntxt.cpp>, řádek = vyhodnocení výrazu se nezdařilo 1143 = '! " Tento kód by měla být zvýšena bez výjimek"". Tato chyba může být související s časování. Pokud chyba potrvá po novým spuštěním příkazu, pomocí DBCC CHECKDB zkontrolujte databázi pro strukturální integrity nebo restartování serveru za účelem zajištění struktury dat v paměti, nejsou poškozená.</qxcntxt.cpp>

Řešení

Informace o kumulativní aktualizaci

Tento problém byl poprvé opraven v následující kumulativní aktualizace serveru SQL Server.

Doporučení: Nainstalujte nejnovější kumulativní aktualizaci pro SQL Server
Každé nové kumulativní aktualizace pro SQL Server obsahuje všechny opravy hotfix a všechny opravy zabezpečení, které byly součástí předchozí kumulativní aktualizace. Doporučujeme stáhnout a nainstalovat nejnovější kumulativní aktualizace pro SQL Server:
Prohlášení
Společnost Microsoft potvrdila, že se jedná o problém v produktech společnosti Microsoft, které jsou uvedeny v části "Platí pro".

Upozornění: Tento článek je přeložený automaticky

Свойства

ИД на статията: 3042135 – Последен преглед: 06/25/2015 09:56:00 – Редакция: 2.0

Microsoft SQL Server 2012 Service Pack 2, Microsoft SQL Server 2014 Developer, Microsoft SQL Server 2014 Enterprise, Microsoft SQL Server 2014 Standard, Microsoft SQL Server 2014 Service Pack 1

  • kbqfe kbfix kbsurveynew kbexpertiseadvanced kbmt KB3042135 KbMtcs
Обратна връзка