ID do artigo: 956176 - Última revisão: quinta-feira, 19 de março de 2009 - Revisão: 3.1

Mensagem de erro ao tentar salvar uma tabela no SQL Server 2008: "Salvar alterações não tem permissão"

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 | Recolher tudo

Sintomas

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 feitas exigem que as tabelas a seguir será descartado e recriado. Você ter feito alterações em uma tabela que não podem ser recriadas ou habilitado a opção impedir salvar alterações que exigem a tabela possa ser recriada.

Causa

Esse problema ocorre quando a opção Impedir salvar alterações que exigem a recriação da tabela está ativada e fazer um ou mais das seguintes alterações na tabela:
  • Você alterar a configuração Permitir valores nulos para uma coluna.
  • Você reordenar colunas da tabela.
  • Você alterar o tipo de dados de coluna.
  • Adicionar uma nova coluna.
Quando você altera uma tabela para que você altera a estrutura de metadados da tabela e, em seguida, salve a tabela, a tabela deve ser recriada essas alterações. Isso pode resultar na perda de metadados e direta perda de dados durante a recriação da tabela. Se você ativar a opção Impedir salvar alterações que exigem a recriação da tabela na seção Designer da janela Opções do SQL Server Management Studio (SSMS), você receberá a mensagem de erro mencionada na seção "Sintomas".

Como Contornar

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 trabalha solução alternativa para esse problema desativando a opção Impedir salvar alterações que exigem recriação da tabela. Para obter mais informações sobre os riscos de desativar essa opção, consulte a seção "Mais informação".

Situação

A Microsoft confirmou que esse é um problema nos produtos da Microsoft listados na seção "Aplica-se a".

Mais Informações

Para alterar a opção Impedir salvar 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 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, a 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 você a evitar recriar uma tabela, ele também pode levar a perda de alterações. Por exemplo, suponha que você ative o recurso de acompanhamento de alteração no SQL Server 2008 para rastrear alterações na tabela. Quando você executa uma operação que faz com que a tabela ser recriado, você receber a mensagem de erro mencionada na seção "Sintomas". No entanto, se você desativar essa opção, o controle informações de alterações existente é excluída quando a tabela é recriada. Portanto, recomendamos que você não trabalha solução alternativa para esse problema desativando a opção.

Para determinar se o recurso de rastreamento de alteração está ativado para uma tabela, siga estas etapas:
  1. No SQL Server Management Studio, localize a tabela no Object Explorer.
  2. Clique com o botão direito do mouse na tabela e, em seguida, clique em Propriedades.
  3. Na caixa de diálogo Propriedades da tabela, clique em Change Tracking.
Se o valor do item de Acompanhamento de alteração 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.

Etapas para reproduzir o problema

  1. No SQL Server Management Studio, crie uma tabela que contém uma chave primária na ferramenta do criador de tabelas.
  2. Clique com o botão direito do mouse no banco de dados que contém essa tabela e, em seguida, clique em Propriedades.
  3. Na caixa de diálogo Propriedades do banco de dados, clique em Change Tracking.
  4. Defina o valor do item de Acompanhamento de alteração como True e, em seguida, clique em OK.
  5. Clique com o botão direito do mouse na tabela e, em seguida, clique em Propriedades.
  6. Na caixa de diálogo Propriedades da tabela, clique em Change Tracking.
  7. Defina o valor do item de Acompanhamento de alteração como True 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 selecionar a caixa de seleção Impedir salvar alterações que exigem recriação da tabela e, em seguida, clique em OK.
  11. Na ferramenta do criador de tabelas, altere a configuração Permitir valores nulos em uma coluna existente.
  12. Tente salvar 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 traduzido ou revisto por pessoas. A Microsoft possui artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais, com o objetivo de oferecer em português a totalidade dos artigos existentes na base de dados de suporte. No entanto, a tradução automática não é sempre perfeita, podendo conter erros de vocabulário, sintaxe ou gramática. A Microsoft não é responsável por incoerências, erros ou prejuízos ocorridos em decorrência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza atualizações freqüentes 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/ )