Artigo: 956176 - Última revisão: quinta-feira, 19 de Março de 2009 - Revisão: 3.1

Mensagem de erro quando tenta guardar uma tabela no SQL Server 2008: "A guardar as alterações não é permitido"

Dica do SistemaEste artigo aplica-se a um sistema operativo diferente do que está a utilizar. Foi desactivado o conteúdo do artigo, que pode não ser relevante para si.

Nesta página

Expandir tudo | Reduzir tudo

Sintomas

Quando utiliza o Data Definition Language (DDL) para modificar uma tabela e, em seguida, tentar guardar a tabela do Microsoft SQL Server 2008, poderá receber a seguinte mensagem:
Não é permitida guardar alterações. As alterações que efectuou requerem as tabelas seguintes a ser interrompidas e recriado. Tiver quer efectuadas alterações a uma tabela que não pode ser recriado ou activado a opção impedir guardar as alterações que requerem a tabela a ser recriada.

Causa

Este problema ocorre quando a opção de impedir guardar as alterações que requerem a recriação da tabela está activada e efectuar uma ou mais das seguintes alterações à tabela:
  • Alterar a definição Permitir nulos para uma coluna.
  • Reordenar colunas numa tabela.
  • Alterar o tipo de dados de coluna.
  • Adicionar uma nova coluna.
Quando altera uma tabela para que alterar a estrutura de metadados da tabela e, em seguida, guardar a tabela, a tabela deve ser recriada estas alterações. Isto pode resultar na perda de metadados e numa perda directa de dados durante a recriação da tabela. Se activar a opção de impedir guardar as alterações que requerem a recriação da tabela na secção Designer da janela Opções SSMS (SQL Server Management Studio), recebe a mensagem de erro mencionada na secção "Sintomas".

Como contornar

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

Importante Recomendamos vivamente que pode não contornar este problema desactivando a opção de impedir guardar as alterações que requerem a recriação da tabela. Para obter mais informações sobre os riscos de desactivação desta opção, consulte a secção "Mais informação".

Ponto Da Situação

A Microsoft confirmou que este é um erro ocorre nos produtos da Microsoft listados na secção "Aplica-se a".

Mais Informação

Para alterar a opção de Guardar as alterações que requerem a recriação da tabela de impedir, siga estes passos:
  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. Seleccione ou desmarque a caixa de verificação impedir guardar as alterações que requerem a recriação da tabela e, em seguida, clique em OK.
Nota Se desactivar esta opção, não são avisados quando guardar a tabela que as alterações que efectuou tem alterado a estrutura de metadados da tabela. Neste caso, poderá ocorrer a perda de dados quando guardar a tabela.

Risco de desactivar a opção "Impedir a guardar as alterações que requerem a recriação da tabela"

Embora a desactivação desta opção pode ajudar a evitar recriar uma tabela, pode igualmente conduzir a alterações a ser perdidas. Por exemplo, suponha que active a funcionalidade de registo de alterações no SQL Server 2008 para manter um registo das alterações à tabela. Quando efectua uma operação que faz com que a tabela a ser recriado, recebe a mensagem de erro mencionada na secção "Sintomas". No entanto, se desactivar esta opção, as informações de registo de alterações existente é eliminada quando a tabela é criada novamente. Por conseguinte, recomendamos que pode não contornar este problema desactivando a opção.

Para determinar se a funcionalidade de registo de alterações está activada para uma tabela, siga estes passos:
  1. No SQL Server Management Studio, localize a tabela no Explorador de objectos.
  2. Clique com o botão direito do rato na tabela e, em seguida, clique em Propriedades.
  3. Na caixa de diálogo Propriedades da tabela, clique em Registo de alterações.
Se o valor do Registo de alterações produto for true, esta opção está activada para a tabela. Se o valor for false, esta opção está desactivada.

Quando a funcionalidade alterar rastreio está activada, utilize instruções Transact-SQL para alterar a estrutura de metadados da tabela.

Passos para reproduzir o problema

  1. No SQL Server Management Studio, crie uma tabela que contém uma chave primária na ferramenta do Estruturador da tabela.
  2. Clique com o botão direito do rato na base de dados que contém esta tabela e, em seguida, clique em Propriedades.
  3. Na caixa de diálogo Propriedades da base de dados, clique em Registo de alterações.
  4. Defina o valor do item Registo de alterações para Verdadeiro e, em seguida, clique em ' OK '.
  5. Clique com o botão direito do rato na tabela e, em seguida, clique em Propriedades.
  6. Na caixa de diálogo Propriedades da tabela, clique em Registo de alterações.
  7. Defina o valor do item Registo de alterações para Verdadeiro e, em seguida, clique em ' OK '.
  8. No menu Ferramentas, clique em Opções.
  9. Na caixa de diálogo Opções, clique em designers.
  10. Clique para seleccionar a caixa de verificação impedir guardar as alterações que requerem a recriação da tabela e, em seguida, clique em ' OK '.
  11. Na ferramenta do Estruturador da tabela, altere a definição Permitir nulos numa coluna existente.
  12. Tente guardar a alteração à tabela.

A informação contida neste artigo aplica-se a:
  • Microsoft SQL Server 2008 Express
  • Microsoft SQL Server 2008 Express with Advanced Services
  • Microsoft SQL Server 2008 Standard
  • Microsoft SQL Server 2008 Developer
  • Microsoft SQL Server 2008 Enterprise
  • Microsoft SQL Server 2008 Web
  • Microsoft SQL Server 2008 Workgroup
  • Microsoft SQL Server 2008 R2 Datacenter
  • Microsoft SQL Server 2008 R2 Developer
  • Microsoft SQL Server 2008 R2 Enterprise
  • Microsoft SQL Server 2008 R2 Express
  • Microsoft SQL Server 2008 R2 Express with Advanced Services
  • Microsoft SQL Server 2008 R2 Standard
  • Microsoft SQL Server 2008 R2 Standard Edition for Small Business
  • Microsoft SQL Server 2008 R2 Web
  • Microsoft SQL Server 2008 R2 Workgroup
Palavras-chave: 
kbmt sql2008relnotetools sql2008relnote kbprb KB956176 KbMtpt
Tradução automáticaTradução automática
IMPORTANTE: Este artigo foi traduzido por um sistema de tradução automática (também designado por Machine translation ou MT), não tendo sido portanto revisto ou traduzido por humanos. A Microsoft tem artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais. O objectivo é simples: oferecer em Português a totalidade dos artigos existentes na base de dados do suporte. Sabemos no entanto que a tradução automática não é sempre perfeita. Esta pode conter erros de vocabulário, sintaxe ou gramática? erros semelhantes aos que um estrangeiro realiza ao falar em Português. A Microsoft não é responsável por incoerências, erros ou estragos realizados na sequência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza actualizações frequentes ao software de tradução automática (MT). Obrigado.
Clique aqui para ver a versão em Inglês deste artigo: 956176  (http://support.microsoft.com/kb/956176/en-us/ )