CORREÇÃO: Violação de acesso e "sem exceções devem ser geradas por este código" Erro ocorrerem quando você usar o SQL Server 2012 ou 2014 do SQL Server

IMPORTANTE: Este artigo foi traduzido pelo software de tradução automática da Microsoft e eventualmente pode ter sido editado pela Microsoft Community através da tecnologia Community Translation Framework (CTF) ou por um tradutor profissional. A Microsoft oferece artigos traduzidos automaticamente por software, por tradutores profissionais e editados pela comunidade para que você tenha acesso a todos os artigos de nossa Base de Conhecimento em diversos idiomas. No entanto, um artigo traduzido pode conter erros de vocabulário, sintaxe e/ou gramática. A Microsoft não é responsável por qualquer inexatidão, erro ou dano causado por qualquer tradução imprecisa do conteúdo ou por seu uso pelos nossos clientes.

Clique aqui para ver a versão em Inglês deste artigo: 3042135
Sintomas
Suponha que você use o Microsoft SQL Server 2012 ou 2014 do SQL Server. Quando um deadlock ocorre no SQL Server, você recebe a seguinte violação de acesso é causada pelo monitor de bloqueio:
sqldk! CSlotGroup::PshRelease
sqldk! CSlotPageMgr::Release
sqllang! commondelete
sqllang! excluir]
sqllang! CTraceDataSTVF::InternalReleaseResources
sqllang! TTableBase<CTraceDataSTVFInfo>:: ReleaseResources</CTraceDataSTVFInfo>
sqllang! CTraceDataSTVF:: {dtor}
sqllang! CTraceDataSTVF:: 'Excluir destruidor escalar'
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':: pegar$ 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:: executar
sqldk! SOS_Scheduler::RunTask
sqldk! SOS_Scheduler::ProcessTasks
sqldk! SchedulerManager::WorkerEntryPoint
sqldk! SystemThread::RunWorker
sqldk! SystemThreadDispatcher::ProcessWorker
sqldk! SchedulerManager::ThreadEntryPoint
Kernel32! BaseThreadInitThunk
Ntdll! RtlUserThreadStart
Após a violação de acesso, você pode receber a seguinte mensagem de erro do log de erros do SQL Server:
Data>Hora> spidID> Usando 'dbghelp. dll' versão '4.0.5'
Data>Hora> spidID> * * Despejo thread - spid =ID>, EC = 0X0000007F8608E160
Data>Hora> spidID> * * * Despejo está sendo enviado para a pilhaCaminho do arquivo>\Nome do arquivo de despejo de memória>. txt
Data>Hora> spidID> * *******************************************************************************
Data>Hora> spidID> *
Data>Hora> spidID> * DESPEJO DE PILHA INICIAL:
Data>Hora> spidID> *Data>Hora> spidID>
Data>Hora> spidID> *
Data>Hora> spidID> * Local: qxcntxt.cpp:1143
Data>Hora> spidID> * Expressão:! " Sem exceções devem ser geradas por este código"
Data>Hora> spidID> * SPID:ID>
Data>Hora> spidID> * ID do processo: 3556
Data>Hora> spidID> *
Data>Hora> spidID> * Bytes 37 - do Buffer de entrada
Data>Hora> spidID> * 16 00 00 00 12 00 00 00 02 00 00 00 00 00 00 00 00 00
Data>Hora> spidID> * ÿÿ & 01 00 00 00 ff-ff 0c 00 00 00 00 00 26 04 04 05 00 00
Data>Hora> spidID> * 00
Data>Hora> spidID> *
Data>Hora> spidID> *
...
Data>Hora> spidID> Assinatura de pilha para o despejo é 0x000000014202549F
Data>Hora> spidID> [INFO] identidade Begin End | Erro de resultado de estado Speculate preparado LazyCommit ReadOnly | Transação ThreadId de banco de dados | LogSizeRq de ponto de salvamento de ScanSet de WriteSet de ReadSet | CommitDep TotalComm dependentes 0 dependentes 1 dependentes 2 dependentes 3 dependentes 4 dependentes 5 dependentes 6 dependentes 7 | Área local |
Data>Hora> spidID> Tempo limite ao aguardar o processo de despejo externo 11800.

Data>Hora> spidID> Erro: 17066, gravidade: 16, estado: 1.
Data>Hora> spidID> Declaração do SQL Server: arquivo: <qxcntxt.cpp>, linha = 1143 Falha na asserção = '! " Sem exceções devem ser geradas por este código"'. Este erro pode estar relacionado ao tempo. Se o erro persistir após executar a instrução novamente, use DBCC CHECKDB para verificar se o banco de dados para assegurar a integridade estrutural ou reinicie o servidor para garantir que as estruturas de dados na memória não estão corrompidas.</qxcntxt.cpp>

Resolução

Informações da atualização cumulativas

O problema foi corrigido primeiro na atualização cumulativa seguinte do SQL Server.

Recomendação: Instale a atualização cumulativa mais recente para o SQL Server
Cada nova atualização cumulativa para SQL Server contém todos os hotfixes e todas as correções de segurança que foram incluídas com a atualização cumulativa anterior. Recomendamos que você faça o download e instala as mais recentes atualizações cumulativas para o SQL Server:
Situação
A Microsoft confirma que este é um problema em seus produtos listados na seção "Aplica-se a".

Aviso: este artigo foi traduzido automaticamente

Propriedades

ID do Artigo: 3042135 - Última Revisão: 06/25/2015 06:32:00 - Revisão: 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 KbMtpt
Comentários