Fehlermeldung „Das Speichern von Änderungen ist nicht zulässig“ in SSMS

Dieser Artikel hilft Ihnen, das Problem zu umgehen, dass Sie eine Fehlermeldung erhalten, wenn Sie versuchen, eine Tabelle in SQL Server Management Studio (SSMS) zu speichern.

Ursprüngliche Produktversion: SQL Server
Ursprüngliche KB-Nummer: 956176

Problembeschreibung

Wenn Sie versuchen, eine Tabelle zu speichern, nachdem Sie Änderungen an der Tabelle mithilfe von Designer in SQL Server Management Studio vorgenommen haben, wird möglicherweise die folgende Fehlermeldung angezeigt:

Das Speichern von Änderungen ist nicht zulässig. Die vorgenommenen Änderungen erfordern das Löschen und Neuerstellen der folgenden Tabellen. Sie haben entweder Änderungen an einer Tabelle vorgenommen, die nicht neu erstellt werden kann, oder die Option ‚Speichern von Änderungen verhindern, die die Neuerstellung der Tabelle erfordern‘ aktiviert.

Dieses Problem tritt auf, wenn Sie eine oder mehrere der folgenden Änderungen an der Tabelle vornehmen:

  • Sie ändern die Einstellung „Nullwerte zulassen“ für eine Spalte.
  • Sie ordnen Spalten in der Tabelle neu an.
  • Sie ändern den Spaltendatentyp.
  • Sie fügen eine neue Spalte hinzu.
  • Sie ändern die filegroup einer Tabelle oder deren text/image-Daten.

Ursache

Dieses Problem tritt auf, weil in SQL Server Management Studio die Option Speichern von Änderungen verhindern, die die Neuerstellung der Tabelle erfordern standardmäßig aktiviert ist.

Wenn Sie eine Tabelle so ändern, dass ihre Metadatenstruktur geändert wird, und dann die Tabelle speichern, muss diese auf der Basis dieser Änderungen neu erstellt werden. Bei der Neuerstellung der Tabelle sind Verluste von Metadaten und direkte Datenverluste möglich. Wenn Sie die Option Speichern von Änderungen verhindern, die die Neuerstellung der Tabelle erfordern im Abschnitt Designer im Fenster Optionen für SQL Server Management Studio (SSMS) aktivieren, wird die im Abschnitt „Problembeschreibung“ erwähnte Fehlermeldung angezeigt.

Problemumgehung

Umgehen Sie das Problem, indem Sie die Änderungen an der Metadatenstruktur einer Tabelle mithilfe von ALTER TABLE-Transact-SQL-Anweisungen vornehmen.

Mit dem folgenden Befehl beispielsweise können Sie die Spalte MyDate in der Tabelle MyTable so ändern, dass NULL-Werte akzeptiert werden:

alter table MyTable alter column MyDate7 datetime NULL

Wichtig

Wir empfehlen Ihnen dringend, dieses Problem nicht dadurch zu umgehen, dass Sie die Option „Speichern von Änderungen verhindern, die die Neuerstellung der Tabelle erfordern“ deaktivieren. Weitere Informationen zu den mit dem Deaktivieren dieser Option verbundenen Risiken finden Sie im Abschnitt „Weitere Informationen“.

Weitere Informationen

Gehen Sie wie folgt vor, um die Option Speichern von Änderungen verhindern, die die Neuerstellung der Tabelle erfordern zu ändern:

  1. Öffnen Sie SQL Server Management Studio.

  2. Klicken Sie im Menü Extras auf Optionen.

  3. Klicken Sie im Navigationsbereich des Fensters Optionen auf Designer.

  4. Aktivieren oder deaktivieren Sie das Kontrollkästchen Speichern von Änderungen verhindern, die die Neuerstellung der Tabelle erfordern, und klicken Sie dann auf OK.

Hinweis

Wenn Sie diese Option deaktivieren, werden Sie beim Speichern der Tabelle nicht gewarnt, dass durch Ihre Änderungen die Metadatenstruktur der Tabelle geändert wurde. In diesem Fall sind Datenverluste möglich, wenn Sie die Tabelle speichern.

Mit dem Deaktivieren der Option „Speichern von Änderungen verhindern, die die Neuerstellung der Tabelle erfordern“ verbundenes Risiko

Sie können zwar durch Deaktivieren dieser Option das Neuerstellen einer Tabelle vermeiden, aber es besteht auch die Möglichkeit, dass Änderungen verloren gehen. Nehmen Sie zum Beispiel an, dass Sie die Funktion „Änderungsnachverfolgung“ in SQL Server aktivieren, um Änderungen an der Tabelle zu verfolgen. Wenn Sie einen Vorgang ausführen, aufgrund dessen die Tabelle neu erstellt wird, wird die im Abschnitt Problembeschreibung erwähnte Fehlermeldung angezeigt. Wenn Sie die Option jedoch deaktivieren, werden die vorhandenen Änderungsnachverfolgungsinformationen bei der Neuerstellung der Tabelle gelöscht. Daher empfehlen wir, das Problem nicht durch Deaktivieren der Option zu umgehen.

Gehen Sie wie folgt vor, um zu ermitteln, ob das Feature Änderungsnachverfolgung für eine Tabelle aktiviert ist:

  1. Suchen Sie die Tabelle im Objekt-Explorer von SQL Server Management Studio.
  2. Klicken Sie mit der rechten Maustaste auf die Tabelle, und klicken Sie dann auf „Eigenschaften“.
  3. Klicken Sie im Dialogfeld „Tabelleneigenschaften“ auf „Änderungsnachverfolgung“. Wenn der Wert des Elements „Änderungsnachverfolgung“ auf „Wahr“ festgelegt ist, ist diese Option für die Tabelle aktiviert. Wenn der Wert auf „Falsch“ festgelegt ist, ist die Option deaktiviert.

Wenn das Feature Change Tracking aktiviert ist, verwenden Sie Transact-SQL-Anweisungen, um die Metadatenstruktur der Tabelle zu ändern.

Schritte zum Reproduzieren des Problems

  1. Erstellen Sie in SQL Server Management Studio im Tool Tabellen-Designer eine Tabelle, die einen Primärschlüssel enthält.
  2. Klicken Sie mit der rechten Maustaste auf die Datenbank, in der sich die Tabelle befindet, und klicken Sie dann auf Eigenschaften.
  3. Klicken Sie im Dialogfeld Datenbankeigenschaften auf Änderungsnachverfolgung.
  4. Legen Sie den Wert des Elements Änderungsnachverfolgung auf Wahr fest, und klicken Sie dann auf OK.
  5. Klicken Sie mit der rechten Maustaste auf die Tabelle, und klicken Sie dann auf Eigenschaften.
  6. Klicken Sie im Dialogfeld Tabelleneigenschaften auf Änderungsnachverfolgung.
  7. Legen Sie den Wert des Elements Änderungsnachverfolgung auf Wahr fest, und klicken Sie dann auf OK.
  8. Klicken Sie im Menü Extras auf Optionen.
  9. Klicken Sie im Dialogfeld Optionen auf Designer.
  10. Aktivieren Sie das Kontrollkästchen Speichern von Änderungen verhindern, die die Neuerstellung der Tabelle erfordern, und klicken Sie dann auf OK.
  11. Ändern Sie im Tool Tabellen-Designer die Einstellung NULL-Werte zulassen für eine vorhandene Spalte.
  12. Versuchen Sie, die Änderung an der Tabelle zu speichern.