it-swarm.com.de

Speichern von Änderungen nach der Tabellenbearbeitung in SQL Server Management Studio

Wenn ich Änderungen in einer Tabelle speichern möchte, die zuvor in SQL Server Management Studio gespeichert wurde (keine Daten in der Tabelle vorhanden), wird folgende Fehlermeldung angezeigt:

Das Speichern von Änderungen ist nicht gestattet. 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, bei denen die Tabelle neu erstellt werden muss.

Was kann verhindern, dass die Tabelle leicht bearbeitet werden kann? Oder ist es die übliche Methode für SQL Server Management Studio, eine Tabelle zum Bearbeiten neu zu erstellen? Was ist das - das "Option Speichern von Änderungen verhindern"?

240
rem

Gehen Sie zu Extras -> Optionen -> Designer -> Deaktivieren Sie "Speichern von Änderungen verhindern, die eine erneute Erstellung der Tabelle erfordern". Voila.

Das passiert, weil es manchmal notwendig ist, eine Tabelle zu löschen und neu zu erstellen, um etwas zu ändern. Dies kann eine Weile dauern, da alle Daten in eine temporäre Tabelle kopiert und dann erneut in die neue Tabelle eingefügt werden müssen. Da SQL Server Ihnen standardmäßig nicht vertraut, müssen Sie sagen: "OK, ich weiß, was ich tue, jetzt lass mich meine Arbeit machen."

526
Pedro

Extras> Optionen

enter image description here

Deaktivieren Sie die obige Option

107
Prasanna

Verwenden Sie SQL-Anweisungen, um dieses Problem umzugehen, um die Änderungen an der Metadatenstruktur einer Tabelle vorzunehmen.

Dieses Problem tritt auf, wenn die Option "Speichern von Änderungen verhindern, die eine erneute Erstellung der Tabelle erfordern" aktiviert ist.

Quelle: Fehlermeldung beim Versuch, eine Tabelle in SQL Server 2008 zu speichern: "Das Speichern von Änderungen ist nicht zulässig"

71
Daniel Vassallo

Anstatt das Kontrollkästchen (eine schlechte Lösung) zu deaktivieren, sollten Sie die Datenbearbeitung auf diese Weise beenden. Wenn Daten geändert werden müssen, verwenden Sie ein Skript, damit Sie sie problemlos in die Produktion portieren können und sie der Quellcodeverwaltung unterliegen. Dies erleichtert auch das Aktualisieren von Teständerungen, nachdem die Produktion auf dev heruntergefahren wurde, damit Entwickler mit aktuelleren Daten arbeiten können.

15
HLGEM

Gehen Sie zu SSMS und versuchen Sie dies

Menü >> Extras >> Optionen >> Designer >> Deaktivieren Sie das Kontrollkästchen "Änderungen, die eine Neuerstellung der Tabelle erfordern, nicht speichern".

Hier ist eine sehr gute Erklärung dazu: http://blog.sqlauthority.com/2009/05/18/sql-server-fix-management-studio-error-saving-changes-in- unzulässig-die-änderungen-die-sie-vorgenommen-haben-erfordern-die-folgenden-tabellen-die-gelöscht-werden-und-neu-erstellt-müssen-sie-entweder-änderungen-an-einem-tab/

14
Rolwin C

Viele Änderungen, die Sie sehr einfach und visuell im Tabelleneditor in SQL Server Management Studio vornehmen können, erfordern tatsächlich, dass SSMS die Tabelle im Hintergrund ablegt und von Grund auf neu erstellt. Selbst einfache Dinge wie das Umordnen der Spalten können nicht in einer Standard-SQL-DDL-Anweisung ausgedrückt werden. SSMS kann lediglich die Tabelle löschen und neu erstellen.

Diese Operation kann a) auf einem großen Tisch sehr zeitaufwändig sein oder b) aus verschiedenen Gründen (wie z. B. FK-Einschränkungen und Ähnlichem) sogar fehlschlagen. Daher hat SSMS in SQL Server 2008 diese neue Option eingeführt, die die anderen Antworten bereits identifiziert haben.

Es mag auf den ersten Blick kontraintuitiv erscheinen, solche Änderungen zu verhindern - und es ist sicherlich ein Ärgernis auf einem Entwickler-Server. Auf einem Produktionsserver wird diese Option und der Standardwert zum Verhindern solcher Änderungen jedoch zu einem potenziellen Lebensretter!

14
marc_s

Dies ist ein Risiko, diese Option zu deaktivieren. Sie können Änderungen verlieren, wenn die Änderungsnachverfolgung (Ihre Tabellen) aktiviert ist.

Chris

http://chrisbarba.wordpress.com/2009/04/15/sql-server-2008-cant-save-changes-to-tables/

6
Chris