您目前已離線,請等候您的網際網路重新連線

修正: 存取違規及 「 這段程式碼應該引發任何例外狀況"錯誤時,會發生您使用 SQL Server 2012年或 SQL Server 2014

請注意--重要:本文是以 Microsoft 機器翻譯軟體翻譯而成,且可能由 Microsoft Community 利用 Community Translation Framework技術或人工進行事後編修。翻譯過程並無專業譯者參與。Microsoft 同時提供使用者人為翻譯、機器翻譯及社群編修後的機器翻譯三種版本的文章,讓使用者可以依其使用語言使用知識庫中的所有文章。但是,所有翻譯文章都可能不盡完美,內容都可能出現詞彙、語意或文法上的錯誤。就翻譯內容之不正確或錯誤,或客戶因使用翻譯內容所產生的任何損害,微軟不負擔任何責任。Microsoft將依合理的商業努力不斷地更新機器翻譯軟體和工具,以期能為使用者提供更好的服務。

按一下這裡查看此文章的英文版本:3042135
徵狀
假設您使用 Microsoft SQL Server 2012年或 SQL Server 2014年。當 SQL Server 中,就會發生死結時,會收到下列的存取違規所造成死結監視器:
sqldk!CSlotGroup::PshRelease
sqldk!CSlotPageMgr::Release
sqllang! commondelete
sqllang! delete]
sqllang!CTraceDataSTVF::InternalReleaseResources
sqllang!TTableBase<CTraceDataSTVFInfo>:: ReleaseResources</CTraceDataSTVFInfo>
sqllang!CTraceDataSTVF:: {dtor}
sqllang!CTraceDataSTVF:: '純量刪除解構函式'
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':: 攔截 $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:: 執行
sqldk!SOS_Scheduler::RunTask
sqldk!SOS_Scheduler::ProcessTasks
sqldk!SchedulerManager::WorkerEntryPoint
sqldk!SystemThread::RunWorker
sqldk!SystemThreadDispatcher::ProcessWorker
sqldk!SchedulerManager::ThreadEntryPoint
kernel32!BaseThreadInitThunk
ntdll!RtlUserThreadStart
之後存取違規,您會從 SQL Server 錯誤記錄檔收到下列錯誤訊息:
日期>時間> spid識別碼> 使用 'dbghelp.dll' '4.0.5' 版
日期>時間> spid識別碼> * * 傾印執行緒: spid =識別碼>,EC = 0X0000007F8608E160
日期>時間> spid識別碼> * * * 堆疊傾印傳送至檔案路徑>\傾印的檔名>.txt
日期>時間> spid識別碼> * *******************************************************************************
日期>時間> spid識別碼> *
日期>時間> spid識別碼> * 開始堆疊傾印:
日期>時間> spid識別碼> *日期>時間> spid識別碼>
日期>時間> spid識別碼> *
日期>時間> spid識別碼> * 位置: qxcntxt.cpp:1143
日期>時間> spid識別碼> * 運算式:!"應由這段程式碼中不引發任何例外狀況"
日期>時間> spid識別碼> * SPID:識別碼>
日期>時間> spid識別碼> * 處理序識別碼: 3556
日期>時間> spid識別碼> *
日期>時間> spid識別碼> * 輸入緩衝區 37 個位元組-
日期>時間> spid識別碼> * 16 00 00 00 12 00 00 00 02 00 00 00 00 00 00 00 00 00
日期>時間> spid識別碼> * ÿÿ & 01 00 00 00 ff ff 0c 00 00 00 00 00 26 04 04 05 00 00
日期>時間> spid識別碼> * 00
日期>時間> spid識別碼> *
日期>時間> spid識別碼> *
...
日期>時間> spid識別碼> 堆疊傾印的簽章是 0x000000014202549F
日期>時間> spid識別碼> [資訊] 識別開始時間結束時間 |狀態結果錯誤 Speculate 準備的 LazyCommit 唯讀 |交易資料庫 ThreadId |ReadSet WriteSet ScanSet 點 LogSizeRq |CommitDep TotalComm 相依 0 相依 1 相依 2 相依 3 相依 4 相依 5 相依 6 相依 7 |區域位置 |
日期>時間> spid識別碼> 外部的傾印程序 11800 所等候的逾時。

日期>時間> spid識別碼> 錯誤: 17066,高的嚴重性等級: 16,狀態: 1。
日期>時間> spid識別碼> SQL Server 判斷提示: 檔案: <qxcntxt.cpp>,列 = 1143年無法判斷提示 = '!"應由這段程式碼中引發任何例外狀況"'。這項錯誤可能是預存時間相關。如果錯誤持續發生後重新執行此陳述式中,使用 DBCC CHECKDB 來檢查資料庫中的結構的完整性,或重新啟動伺服器以確保記憶體中資料結構不會損毀。</qxcntxt.cpp>

解決方案

累積的更新資訊

SQL Server 的下列累積更新已先修正問題。

建議: 安裝最新的 SQL Server 累積更新
SQL Server 每個新的累積更新包含所有的 hotfix,所有安全性修正程式,都包含在先前的累積更新。我們建議您下載並安裝最新的累積更新 SQL Server 的:
狀況說明
Microsoft 已確認這是<套用> 一節所列出的 Microsoft 產品的問題。

警告:本文為自動翻譯

內容

文章識別碼:3042135 - 最後檢閱時間:06/22/2015 16:02: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 KbMtzh
意見反應
>