Chybová zpráva při pokusu uložit tabulku na serveru SQL Server: "Uložení změn není povolena."

Příznaky

Při úpravě tabulky pomocí jazyka DDL (Data Definition) a opakujte uložení tabulky Microsoft SQL Server 2008, můžete obdržet následující zprávu:

Uložení změn není povoleno. Provedené změny vyžadují následující tabulky vynechána a znovu vytvořena. Pravděpodobně jste provedli změny do tabulky, které nelze znovu vytvořit nebo povolena možnost zabránit ukládání změn, které vyžadují tabulka bude znovu vytvořen.

Příčina

K tomuto problému dochází, pokud je povolena možnost zabránit ukládání změn, které vyžadují znovuvytváření tabulky a provést jednu nebo více z následujících změn v tabulce:
  • Můžete změnit nastavení Povolit hodnoty Null pro sloupec.
  • Můžete změnit pořadí sloupců v tabulce.
  • Můžete změnit typ dat sloupce.
  • Přidáte nový sloupec.
Při změně tabulky tak, aby změnit metadata strukturu tabulky a potom uložte tabulku, tabulka musí být znovu vytvořeny na základě těchto změn. To může způsobit ztrátu metadat a přímou ztrátu dat při znovuvytváření tabulky. Pokud povolíte možnost zabránit ukládání změn, které vyžadují znovuvytváření tabulky v části Návrhář okno Možnosti SQL Server Management Studio (SSMS) , zobrazí se chybová zpráva popsaná v části "Příznaky".

Jak potíže obejít

Chcete-li tento problém vyřešit, použijte příkazy jazyka Transact-SQL ke změnám struktury metadata tabulky. Další informace naleznete v následujícím tématu v SQL Server Books Online:

http://msdn.microsoft.com/en-us/library/ms190273.aspx

Například chcete-li změnit MyDate sloupci typu datetime v v tabulce nazvané MyTable na hodnoty NULL, které lze použít:

alter table MyTable alter column MyDate7 datetime NULL

Důležité: Důrazně doporučujeme, aby jste není tento problém vyřešit tak, že vypnete možnost zabránit ukládání změn, které vyžadují znovuvytváření tabulky . Další informace o vypnutí této možnosti rizika naleznete v části "Další informace".

Stav

Společnost Microsoft potvrzuje, že se jedná o problém v produktech této společnosti, které jsou uvedeny v části "Platí pro".

Další informace

Chcete-li zabránit ukládání změn, které vyžadují znovuvytváření tabulky možnost změnit, postupujte takto:
  1. Otevřete SQL Server Management Studio (SSMS).
  2. V nabídce Nástroje klepněte na příkaz Možnosti.
  3. V podokně navigační okno Možnosti klepněte na tlačítko Návrháři.
  4. Vyberte nebo zrušte zaškrtnutí zabránit ukládání změn, které vyžadují znovuvytváření tabulky zaškrtávací políčko a klepněte na tlačítko OK.
Poznámka: Pokud zakážete tuto možnost, nezobrazí se upozornění při uložení tabulky změnily provedené změny metadat strukturu tabulky. V tomto případě může dojít ke ztrátě dat při uložení tabulky.

Vypnutí možnosti "Zabránit ukládání změn, které vyžadují znovuvytváření tabulky" nebezpečí

Ačkoli vypnutí této možnosti může pomoci předejít opětovnému vytvoření tabulky, může také vést k změny ztráty. Předpokládejme, že povolíte funkci sledování změn systému SQL Server 2008 sledování změn do tabulky. Při provádění operace, která způsobí, že tabulky mají být vytvořeny znovu, obdržíte chybovou zprávu, která je uvedena v části "Příznaky". Však Pokud tuto možnost vypnete, existující informace o sledování změn je odstraněna při je znovu vytvořena v tabulce. Proto doporučujeme, aby jste není tento problém vyřešit vypnutím možnosti.

Chcete-li zjistit, zda je povolena funkce sledování změn pro tabulky, postupujte takto:
  1. V SQL Server Management Studio vyhledejte tabulku v Aplikaci Explorer objektu.
  2. Klepněte pravým tlačítkem myši na tabulku a potom klepněte na příkaz Vlastnosti.
  3. V dialogovém okně Vlastnosti tabulky klepněte na tlačítko Sledování změn.
Pokud Sledování změn položky hodnotu True, tato možnost je povolena pro tabulku. Pokud je hodnota False, je tato možnost zakázána.

Pokud je povolena funkce sledování změnit, použijte příkazy jazyka Transact-SQL chcete-li změnit strukturu metadat tabulky.

Kroky pro reprodukci problému

  1. V SQL Server Management Studio vytvořte tabulku, která obsahuje primární klíč v nástroji Návrhář tabulky.
  2. Klepněte pravým tlačítkem myši databázi, která obsahuje tato tabulka a potom klepněte na příkaz Vlastnosti.
  3. V dialogovém okně Vlastnosti databáze klepněte na tlačítko Sledování změn.
  4. Nastavte hodnotu položky Sledování změn na hodnotu Truea potom klepněte na tlačítko OK.
  5. Klepněte pravým tlačítkem myši na tabulku a potom klepněte na příkaz Vlastnosti.
  6. V dialogovém okně Vlastnosti tabulky klepněte na tlačítko Sledování změn.
  7. Nastavte hodnotu položky Sledování změn na hodnotu Truea potom klepněte na tlačítko OK.
  8. V nabídce Nástroje klepněte na příkaz Možnosti.
  9. V dialogovém okně Možnosti klepněte na tlačítko Návrháři.
  10. Klepnutím vyberte možnost zabránit ukládání změn, které vyžadují znovuvytváření tabulky zaškrtávací políčko a klepněte na tlačítko OK.
  11. V nástroji Návrhář tabulky změňte nastavení Povolit hodnoty Null na existující sloupec.
  12. Pokuste se uložit změny do tabulky.
Vlastnosti

ID článku: 956176 - Poslední kontrola: 14. 1. 2017 - Revize: 1

Váš názor