Sintomas
Assuma que tem uma tabela que tem um gatilho DML no Microsoft SQL Server 2008 R2, SQL Server 2012 ou SQL Server 2014 e nesse gatilho junta-se a tabela inserida/eliminada com outras tabelas. Quando executa uma declaração DML nesta tabela, pode ocorrer uma violação de acesso durante a compilação do gatilho e receber o seguinte erro:
Ocorreu um erro grave no comando atual. Os resultados, se houver, devem ser descartados.
Além disso, os seguintes erros são registados no registo de erros do SQL Server:
<Data><Hora> espiada# ***Stack Dump sendo enviada para< FilePath>\SQLDumpxxx.t<xt Data><Time> spid# SqlDumpExceptionHandler: Process # gerou exceção fatal c0000005 EXCEPTION_ACCESS_VIOLATION. O SQL Server está a terminar este processo.<Data><Hora> espiado# * ************************************************************************************************************************************************<************************************************************************************************************************************><>> spid# * data<><><1 spid# * START STACK DUMP:><2 Data>< hora><5 spid# *><6 Data><hora ><9 espiado #><0 Data>< hora><3 spid# *><4 data><><data><><><data>< spid # hora><7 spid# * data><8><>> spid# * Endereço de exceção = 0000000000009 MóduloE4F2A (sqlservr+000000000002D4F2A)<Data><tempo>spid# * Código de exceção = c00000000002D4F2A)<Data><tempo> spid# * Código de exceção = c0000005 EXCEPTION_ACCESS_VIOLATION<Data>< hora> espiado * Violação de acesso ocorreu endereço de escrita 000000000000000000000000<Data><hora> espiado# * Tampão de entrada 510 bytes -<Data>< hora> spid# * SQL_query_code
Resolução
O problema foi corrigido pela primeira vez na seguinte atualização cumulativa 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 que foram incluídas com a atualização cumulativa anterior. Confira as últimas atualizações cumulativas do SQL Server:
Solução
Para contornar o problema, não utilize a tabela inserida/eliminada diretamente numa consulta juntando-a a outras tabelas, em vez disso cache-a numa tabela temporária e utilize a tabela temporária na consulta.
Estado
A Microsoft confirmou que este problema ocorre nos produtos da Microsoft listados na secção "Aplica-se a".