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

Dieser Artikel hilft Ihnen, das Problem zu umgehen, bei dem beim Versuch, eine Tabelle in SQL Server Management Studio (SSMS) zu speichern, eine Fehlermeldung angezeigt wird.

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

Problembeschreibung

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

Das Speichern von Änderungen ist nicht zulässig. Für die von Ihnen vorgenommenen Änderungen müssen die folgenden Tabellen gelöscht und neu erstellt werden. Sie haben entweder Änderungen an einer Tabelle vorgenommen, die nicht neu erstellt werden kann, oder die Option "Speichern von Änderungen verhindern" aktiviert, die eine erneute Erstellung der Tabelle erfordern.

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

  • Sie ändern die Einstellung "Nullen zulassen" für eine Spalte.
  • Sie ordnen die Spalten in der Tabelle neu an.
  • Sie ändern den Spaltendatentyp.
  • Sie fügen eine neue Spalte hinzu.
  • Sie ändern die filegroup Daten einer text/image Tabelle.

Ursache

Dieses Problem tritt auf, weil die Option zum Verhindern des Speicherns von Änderungen, die die Option zum erneuten Erstellen von Tabellen   erfordern, in SQL Server Management Studio standardmäßig aktiviert ist.

Wenn Sie eine Tabelle so ändern, dass Sie die Metadatenstruktur der Tabelle ändern und dann die Tabelle speichern, muss die Tabelle basierend auf diesen Änderungen neu erstellt werden. Dies kann zu einem Verlust von Metadaten und einem direkten Datenverlust während der erneuten Erstellung der Tabelle führen. Wenn Sie die Option "Speichern von Änderungen verhindern" aktivieren, die die Option zum erneuten Erstellen von Tabellen im Abschnitt "Designer" des Fensters "SQL Server Management Studio (SSMS)" erfordern, wird die Fehlermeldung angezeigt, die im Abschnitt "Symptome" erwähnt wird.

Problemumgehung

Um dieses Problem zu umgehen, verwenden Sie ALTER TABLE Transact-SQL-Anweisungen, um die Änderungen an der Metadatenstruktur einer Tabelle vorzunehmen.

Wenn Sie z. B. die Spalte MyDate des Typs "datetime" in der Tabelle MyTable ändern möchten, um NULL-Werte zu akzeptieren, können Sie Folgendes verwenden:

alter table MyTable alter column MyDate7 datetime NULL

Wichtig

Es wird dringend empfohlen, dieses Problem nicht zu umgehen, indem Sie die Option "Speichern von Änderungen verhindern" deaktivieren, die die Neuerstellung der Tabelle erfordern. Weitere Informationen zu den Risiken beim Deaktivieren dieser Option finden Sie im Abschnitt "Weitere Informationen".

Weitere Informationen

Führen Sie die folgenden Schritte aus, um das Speichern von Änderungen zu verhindern, für die die Option zum erneuten Erstellen von Tabellen erforderlich ist:

  1. Öffnen Sie SQL Server Management Studio.

  2. Klicken Sie im Menü Extras auf Optionen.

  3. Klicken Sie im Navigationsbereich des Optionsfensters auf Designer.

  4. Aktivieren oder deaktivieren Sie das Kontrollkästchen Speichern von Änderungen verhindern, die das Kontrollkästchen für die erneute Tabellenerstellung erfordern, und klicken Sie dann auf OK.

Hinweis

Wenn Sie diese Option deaktivieren, werden Sie beim Speichern der Tabelle nicht gewarnt, dass die von Ihnen vorgenommenen Änderungen die Metadatenstruktur der Tabelle geändert haben. In diesem Fall kann ein Datenverlust auftreten, wenn Sie die Tabelle speichern.

Risiko der Deaktivierung der Option "Speichern von Änderungen verhindern, die eine erneute Tabellenerstellung erfordern"

Obwohl das Deaktivieren dieser Option ihnen helfen kann, das erneute Erstellen einer Tabelle zu vermeiden, kann dies auch dazu führen, dass Änderungen verloren gehen. Angenommen, Sie aktivieren die Änderungsnachverfolgungsfunktion in SQL Server, um Änderungen an der Tabelle nachzuverfolgen. Wenn Sie einen Vorgang ausführen, der bewirkt, dass die Tabelle neu erstellt wird, wird die Fehlermeldung angezeigt, die im Abschnitt "Symptome" erwähnt wird. Wenn Sie diese Option jedoch deaktivieren, werden die vorhandenen Änderungsnachverfolgungsinformationen gelöscht, wenn die Tabelle neu erstellt wird. Daher wird empfohlen, dass Sie dieses Problem nicht umgehen, indem Sie die Option deaktivieren.

Führen Sie die folgenden Schritte aus, um zu bestimmen, ob die Änderungsnachverfolgungsfunktion für eine Tabelle aktiviert ist:

  1. Suchen Sie in SQL Server Management Studio die Tabelle im Objekt-Explorer.
  2. Klicken Sie mit der rechten Maustaste auf die Tabelle, und klicken Sie dann auf "Eigenschaften".
  3. Klicken Sie im Dialogfeld "Tabelleneigenschaften" auf "Nachverfolgung ändern". Wenn der Wert des Änderungsnachverfolgungselements "True" lautet, ist diese Option für die Tabelle aktiviert. Wenn der Wert False ist, ist diese Option deaktiviert.

Wenn das Change Tracking Feature 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 eine Tabelle, die einen Primärschlüssel im Tabellen-Designer-Tool enthält.
  2. Klicken Sie mit der rechten Maustaste auf die Datenbank, die diese Tabelle enthält, und klicken Sie dann auf "Eigenschaften".
  3. Klicken Sie im Dialogfeld Datenbankeigenschaften auf "Nachverfolgung ändern".
  4. Legen Sie den Wert des Änderungsnachverfolgungselements auf "True" 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 "Nachverfolgung ändern".
  7. Legen Sie den Wert des Änderungsnachverfolgungselements auf "True" 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 Zum Speichern von Änderungen verhindern, die eine erneute Tabellenerstellung erfordern, und klicken Sie dann auf "OK".
  11. Ändern Sie im Tabellen-Designer-Tool die Einstellung "Null zulassen" in einer vorhandenen Spalte.
  12. Versuchen Sie, die Änderung in der Tabelle zu speichern.