Sintomas
Tenha em conta o seguinte cenário:
- Tem uma base de dados que utiliza o modelo de recuperação BULK_LOGGED ou SIMPLE no Microsoft SQL Server 2008, SQL Server 2008 R2, SQL Server 2012 ou SQL Server 2014.
- Ativa o botão SET XACT_ABORT.
- Você tenta executar várias instruções BULK INSERT em uma transação distribuída única.
Nesse cenário, a instrução BULK INSERT pode falhar e você receber a seguinte mensagem de erro:
Nota
Localização: pageref.cpp:913
Expressão: IS_OFF (BUF_MINLOGGED, m_buf-bstat>) || pageModifyType != PageModifyType_Contents || GetPagePtr ()->IsTextPage ()
SPID: 56
ID do processo: 2136
Msg 3624, Nível 20, Estado 1, Linha 7
Uma verificação de asserção do sistema falhou. Consulte o registo de erros SQL Server para obter detalhes. Normalmente, uma falha de asserção é causada por um bug de software ou corrupção de dados. Para verificar se há danos no banco de dados, considere executar DBCC CHECKDB. Se concordou em enviar informações de perda para a Microsoft durante a configuração, será enviada uma minicaptura para a Microsoft. Pode estar disponível uma atualização da Microsoft no Service Pack mais recente ou num QFE do Suporte Técnico.
Msg 0, Nível 20, Estado 0, Linha 0
Ocorreu um erro grave no comando atual. Os resultados, se houver, devem ser descartados.
Além disso, um arquivo mini-dump pode ser gerado na pasta de log SQL Server.
Observação Esse problema geralmente ocorre quando SQL Server Integration Services (SSIS) é usado. Por exemplo, o Coordenador de Transações Distribuídas da Microsoft (MS DTC) está envolvido para iniciar transações distribuídas juntamente com SET XACT_ABORT ON se a propriedade de nível de pacote TransactionOption estiver definida como Required.
Causa
Este problema ocorre devido a um erro no SQL Server 2008, SQL Server 2008 R2, SQL Server 2012 ou SQL Server 2014.
Resolução
O problema foi corrigido na atualização cumulativa seguinte do SQL Server.
Atualização Cumulativa 1 para SQL Server 2014 /pt-PT/help/2931693
Atualização cumulativa 8 para SQL Server 2012 SP1 /en-us/help/2917531
Atualização Cumulativa 10 para SQL Server 2008 R2 SP2 /en-us/help/2908087
Atualização Cumulativa 10 para SQL Server 2008 SP1 /en-us/help/2279604
Atualização Cumulativa 1 para SQL Server 2008 SP2 /en-us/help/2289254
Atualização Cumulativa 5 para SQL Server 2008 R2 /en-us/help/2438347
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 2014
- Atualização cumulativa mais recente para o SQL Server 2012 SP1
- Atualização cumulativa mais recente para o SQL Server 2008 R2 SP2
- Atualização cumulativa mais recente para o SQL Server 2008 SP1
- Atualização cumulativa mais recente para o SQL Server 2008 SP2
- Atualização cumulativa mais recente para o SQL Server 2008 R2
Solução
Para contornar esse problema, defina o banco de dados para o modelo de recuperação completa.
Estado
A Microsoft confirmou que se trata de um problema nos produtos Microsoft listados na secção "Aplica-se a".
Referências
Para obter mais informações sobre a configuração SET XACT_ABORT, visite o seguinte site da Microsoft Developer Network (MSDN):
Informações gerais sobre a definição "SET XACT_ABORT" Para obter mais informações sobre operações que são minimamente registradas, visite o seguinte site da MSDN:
Informações gerais sobre operações que são minimamente registradas Para obter mais informações sobre como manter a integridade dos dados usando transações, visite o seguinte site da MSDN:
Informações gerais sobre como manter a integridade dos dados através de transações Para obter mais informações sobre o modelo de manutenção incremental para SQL Server, clique no número abaixo para ler o artigo na Base de dados de Conhecimento da Microsoft:
935897 Um modelo de manutenção incremental está disponível na equipe de SQL Server para fornecer hotfixes para problemas relatados
Para obter mais informações sobre o esquema de nomenclatura para atualizações SQL Server, clique no número abaixo para ler o artigo na Base de dados de Conhecimento da Microsoft:
822499 Novo esquema de nomenclatura para pacotes de atualização de software do Microsoft SQL Server Para obter mais informações sobre terminologia de atualização de software, clique no número abaixo para ler o artigo na Base de dados de Conhecimento da Microsoft:
824684 Descrição da terminologia padrão utilizada para descrever as atualizações de software da Microsoft