Skip to main content

MS SQL Server 2008 - Erro ao tentar salvar uma tabela no SQL Server 2008

Problema:

Quando você usa DDL (linguagem de definição de dados) para modificar uma tabela e, em seguida, tentar salvar a tabela no Microsoft SQL Server 2008, você receberá a seguinte mensagem:

Não é permitido salvar as alterações. As alterações que você fez exigem as tabelas a seguir ser descartado e recriado. Você ter feito alterações em uma tabela que não pode ser recriada ou habilitado a opção impedir salvar as alterações que exigem a tabela para ser recriada.

Por que Acontece?

Esse problema ocorre quando a opção Impedir salvar as alterações que exigem a recriação da tabela está ativada e você fazer um ou mais dos seguintes alterações na tabela:

* Você alterar a configuração Permitir nulos para uma coluna.
* Você reordenar colunas na tabela.
* Você alterar o tipo de dados de coluna.
* Adicionar uma nova coluna.

Quando você altera uma tabela para que você alterar a estrutura de metadados da tabela e, em seguida, salvar a tabela, a tabela deve ser recriada com base nessas alterações. Isso pode resultar na perda de metadados e em uma perda de dados direta durante a recriação da tabela. Se você ativar a opção Impedir salvar as alterações que exigem a recriação da tabela na seção da janela Opções SSMS (SQL Server Management Studio) Designer , você receberá a mensagem de erro mencionada a cima.

Solução 1

Para contornar este problema, use instruções Transact-SQL para fazer as alterações à estrutura de metadados de uma tabela.

importante É altamente recomendável que você não solucionar esse problema desativando a opção Impedir salvar as alterações que exigem recriação da tabela .

Solução 2

Para alterar a opção Impedir salvar as alterações que exigem a recriação da tabela , siga estas etapas:

1. Abra o SQL Server Management Studio (SSMS).
2. No menu Ferramentas , clique em Opções .
3. No painel de navegação da janela Opções , clique em designers .
4. Selecione ou desmarque a caixa de seleção Impedir salvar as alterações que exigem a recriação da tabela e, em seguida, clique em OK .

Observação Se você desabilitar esta opção, você não será avisado quando você salva a tabela que as alterações que você fez alterou a estrutura de metadados da tabela. Nesse caso, perda de dados pode ocorrer quando você salva a tabela.

Risco de desativar a opção "Impedir salvar alterações que exigem recriação da tabela"

Embora desativar essa opção pode ajudar a evitar recriar uma tabela, ele também pode levar a alterações sendo perdidas. Por exemplo, suponha que você habilitar o recurso controle de alteração no SQL Server 2008 para controlar alterações para a tabela. Quando você executa uma operação que faz com que a tabela que ser recriado, você receber a mensagem de erro mencionada na seção "Sintomas". No entanto, se você desativar essa opção, a alteração existente informações de controle é excluída quando a tabela é recriada. Portanto, recomendamos que você não solucionar esse problema desativando a opção.

Para determinar se o recurso controle de alteração está ativado para uma tabela, execute essas etapas:

1. No SQL Server Management Studio, localize a tabela no Object Explorer .
2. Clique com o botão direito na tabela e, em seguida, clique em Propriedades .
3. Na caixa de diálogo Propriedades da tabela , clique em Controle de alteração .

Se o valor do item Alterar controle for True , essa opção é ativada para a tabela. Se o valor for False , essa opção é desativada.

Quando o recurso Alterar rastreamento está habilitado, use instruções Transact-SQL para alterar a estrutura de metadados da tabela.