Sintomas
Considere o seguinte cenário:
-
Você executa uma instrução MERGE que tem uma cláusula OUTPUT dentro de um procedimento armazenado ou um lote ad hoc Transact-SQL no SQL Server 2016 ou 2017 no Windows.
-
O banco de dados de destino usa o BULK_LOGGED ou o modelo de recuperação simples.
-
Você insere uma grande quantidade de dados (por exemplo: cerca de 6.000 linhas) em uma tabela em outro banco de dados.
Nesse cenário, ocorre um erro de asserção, e você pode receber uma mensagem de erro semelhante à seguinte:
MSG 3624, nível 20, estado 1, line LineNumber
Falha na verificação da declaração do sistema. Verifique o log de erros do SQL Server para obter detalhes. Geralmente, uma falha de asserção é causada por um bug de software ou corrupção de dados. Para verificar se há corrupção do banco de dados, considere executar DBCC CHECKDB. Se você concordou em enviar despejos para a Microsoft durante a instalação, um mini despejo será enviado à Microsoft. Uma atualização pode estar disponível na Microsoft no Service Pack mais recente ou em um hotfix do suporte técnico.
Resolução
Informações de atualização cumulativa:
Esse problema foi corrigido nas seguintes atualizações cumulativas do SQL Server:
Atualização cumulativa 12 para SQL Server 2017
Atualização cumulativa 4 para SQL Server 2016 SP2
Atualização cumulativa 13 para SQL Server 2016 Service Pack 1
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:
Informações sobre o hotfix sob demanda:
Este problema foi corrigido no seguinte hotfix sob demanda para SQL Server:
Status
A Microsoft confirmou que este é um problema nos produtos Microsoft listados na seção "Aplicável a".
Referências
Saiba mais sobre a terminologiaque a Microsoft usa para descrever atualizações de software.