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 caso, você ingresse em tabelas inseridas/excluídas com outras tabelas. Quando você executa uma instrução DML nessa tabela, é possível que uma violação de acesso ocorra durante a compilação do gatilho e você receba a seguinte mensagem de erro:
Ocorreu um erro grave no comando atual. Os resultados, se houver, devem ser descartados.
Além disso, os seguintes erros são registrados no log de erros do SQL Server:
<data><Time> SPID # * * * o despejo de pilha está sendo enviado para <FilePath>\SQLDumpxxx.txt<data><time> SPID # SqlDumpExceptionHandler: Process # gerou exceção fatal c0000005 EXCEPTION_ACCESS_VIOLATION. O SQL Server está finalizando o processo.<data><hora> spid # * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *<data><hora> spid # *<data><time><1 SPID # * iniciar o despejo de pilha:><2 data><hora><5 spid # * ><6 data><tempo><9 spid #><0 data><time><3 spid # *><4 data><time # *><7 data><8 time # *><data>time # * data time SPID # * Exception endereço = 00000000009E4F2A Module (sqlservr + 00000000002D4F2A)<data><hora> SPID # * código de exceção = C0000005 EXCEPTION_ACCESS_VIOLATION<data><time> SPID # * violação de acesso ocorreu escrevendo endereço 0000000000000000<data><time >SPID # * buffer de entrada 510 bytes-<data><time >SPID # * SQL_query_code
Resolução
O problema foi corrigido primeiro na atualização cumulativa a seguir do SQL Server.
Atualização cumulativa 1 para SQL Server 2012 SP2 /en-us/help/2976982
Atualização cumulativa 2 para SQL Server 2014 /en-us/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
Cada nova atualização cumulativa do SQL Server contém todos os hotfixes e todas as correções de segurança incluídas na atualização cumulativa anterior. Confira as atualizações cumulativas mais recentes do SQL Server:
Solução alternativa
Para contornar o problema, não use a tabela inserida/excluída diretamente em uma consulta unindo-a com outras tabelas, em vez disso, armazene em cache em uma tabela temporária e use a tabela temporária na consulta.
Status
A Microsoft confirmou que este é um problema nos produtos Microsoft listados na seção "Aplicável a".