Sintomas
Considere o seguinte cenário:
-
Você tem um banco de dados que tem o isolamento de instantâneos ou o nível de isolamento de instantâneo confirmado habilitado no Microsoft SQL Server 2012 ou no SQL Server 2014.
-
O banco de dados contém uma tabela não vazia que tem um índice clusterizado de várias colunas. A chave à esquerda do índice clusterizado é definida como NOT NULL.
-
Você inicia uma transação e adiciona uma coluna à tabela. O valor dessa coluna é atualizado.
-
Altere a chave à esquerda do índice clusterizado para permitir um valor nulo.
-
Você insere linhas com valores nulos para a chave à esquerda do índice agrupado e, em seguida, anula a transação.
Nesse cenário, a reversão faz com que o banco de dados se torne suspeito e só "repairável" com o comando DBCC CHECKDB REPAIR_ALLOW_DATA_LOSS . Você também pode receber uma mensagem de erro semelhante à seguinte:
MSG 3316, nível 21, estado 2, linha 135 durante a cancelamento de uma operação registrada no banco de dados ' %1! ', ocorreu um erro na ID de registro de log% S_LSN. A linha não foi encontrada. Restaure o banco de dados a partir de um backup completo ou repare o banco de dados.
Resolução
Informações do Service Pack para o SQL Server 2014
Para solucionar esse problema, obtenha o Service Pack 1 para SQL Server 2014.
Para obter mais informações sobre o SQL Server 2014 Service Pack 1 (SP1), consulte erros corrigidos no SQL server 2014 Service Pack 1.
Informações do Service Pack para o SQL Server 2012
Para solucionar esse problema, obtenha o Service Pack mais recente para o Microsoft SQL Server 2012. Para obter mais informações, clique no número abaixo para ler o artigo na base de dados de conhecimento da Microsoft:
2755533 Como obter o Service Pack mais recente para o SQL Server 2012
Status
A Microsoft confirmou que este é um problema nos produtos Microsoft listados na seção "Aplicável a".