Sintomas
Suponha que você tenha uma tabela que tenha um gatilho DML no Microsoft SQL Server 2008 R2, SQL Server 2012 ou SQL Server 2014 e nesse gatilho você ingresse na tabela inserida/excluída com outras tabelas. Quando você executa uma instrução DML nesta tabela, uma violação de acesso pode ocorrer durante a compilação do gatilho e você recebe o seguinte erro:
Nota
Ocorreu um erro grave no comando atual. Os resultados, se houver, devem ser descartados.
Além disso, os seguintes erros são registados SQL Server registo de erros:
Nota
<Date><Time> spid# ***Stack Dump being sent to <FilePath>\SQLDumpxxx.txt
<Data><Hora> spid# SqlDumpExceptionHandler: Processo # generated fatal exception c0000005 EXCEPTION_ACCESS_VIOLATION. SQL Server está a terminar este processo.
<Data><Hora> spid# * *******************************************************************************
<Data><Hora> spid# *
<Data><Hora> spid# * BEGIN STACK DUMP:
<Data><Hora> spid# * <Data><Hora> spid #
<Data><Hora> spid# *
<Data><Hora> spid# *
<Data><Hora> spid# * Endereço da Exceção = 0000000009E4F2A Module(sqlservr+0000000002D4F2A)
<Data><Hora> spid# * Código de Exceção = c0000005 EXCEPTION_ACCESS_VIOLATION
<Data><Hora> spid# * Ocorreu violação de acesso escrevendo endereço 00000000000000000000000000000000000000000000000000000000000000000000000000000
<Data><Hora> spid# * Buffer de entrada 510 bytes -
<Data><Hora> spid# * SQL_query_code
Resolução
O problema foi corrigido na atualização cumulativa seguinte do SQL Server.
Atualização Cumulativa 1 para SQL Server 2012 SP2 /en-us/help/2976982
Atualização Cumulativa 2 para SQL Server 2014 /pt-pt/help/2967546
Atualização Cumulativa 10 para SQL Server 2012 SP1 /en-us/help/2954099
Atualização Cumulativa 12 para SQL Server 2008 R2 SP2 /en-us/help/2938478
Acerca das atualizações cumulativas para 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. Consulte as atualizações cumulativas mais recentes para SQL Server:
- Atualização cumulativa mais recente para o SQL Server 2012 SP2
- Atualização cumulativa mais recente para o SQL Server 2014
- Atualização cumulativa mais recente para o SQL Server 2012 SP1
- Atualização cumulativa mais recente para o SQL Server 2008 R2 SP2
Solução
Para resolver o problema, não utilize a tabela inserida/eliminada diretamente numa consulta, associando-a a outras tabelas. Em vez disso, armazene-a em cache numa tabela temporária e utilize a tabela temporária na consulta.
Estado
A Microsoft confirmou que se trata de um problema nos produtos Microsoft listados na secção "Aplica-se a".