KB2950189 - CORREÇÃO: Uma violação de acesso ocorre quando você executa uma consulta de atualização em uma tabela que tem um gatilho DML no SQL Server

Aplica-se A
SQL Server 2008 R2 Service Pack 2 SQL Server 2008 R2 Developer SQL Server 2008 R2 Enterprise SQL Server 2008 R2 Standard SQL Server 2012 Developer SQL Server 2012 Enterprise SQL Server 2012 Standard SQL Server 2014 Developer - duplicate (do not use) SQL Server 2014 Enterprise - duplicate (do not use) SQL Server 2014 Standard - duplicate (do not use)

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:

      

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".