hoootz
Goto Top

SQL Server 2012 mit SSMS: Frage zu "Die vorgenommenen Änderungen erfordern das Löschen und Neuerstellen der folgenden Tabellen"

Hallo,

ich habe eine Frage zu folgender Option im SQL Server Management Studio.

Über die Einstellung "Speichern von Änderungen verhindern, die die Neuerstellung der Tabelle erfordern" in den Optionen vom SSMS kann man die Meldung "Die vorgenommenen Änderungen erfordern das Löschen und Neuerstellen der folgenden Tabellen" bei bestimmten Änderungen an den Tabellen verhindern.

siehe auch: https://msdn.microsoft.com/de-de/library/bb895146(v=sql.110).aspx


Was ich aber nicht gefunden habe ist, warum die standardmäßig aktiv ist?

Und vor allem: Welche Risiken gehe ich ein, wenn ich diese Option deaktiviere?

Kennt hierzu jemand die Hintergründe?

Danke!
Grüße Hoootz

Content-Key: 265330

Url: https://administrator.de/contentid/265330

Printed on: April 25, 2024 at 22:04 o'clock

Member: eisbein
eisbein Mar 05, 2015 at 14:19:43 (UTC)
Goto Top
Hallo!

Welche Risiken gehe ich ein, wenn ich diese Option deaktiviere?

Wer hat noch Zugriff auf den SQL-Server?

A) Nur ich, ich und nochmal ich -> geringes Risiko
B) Tante Emma, Onkel Franz, die Oma und der Cousin meiner Nichte -> Risiko hoch

Warum?
Der Text "Speichern von Änderungen verhindern, die die Neuerstellung der Tabelle erfordern" sollte für sich sprechen..

Gruß
Eisbein
Member: Hoootz
Hoootz Mar 05, 2015 at 15:21:13 (UTC)
Goto Top
Danke für die schnelle Antwort.

Lesenden und schreibenden Zugriff auf die Tabellen haben ca. 50 Tanten, Onkels ...
Allerdings nicht in der Zeitspanne in der ich die Änderungen vornehme.

Ich möchte folgende Aktionen durchführen:
- Spalten umordnen
- Neue Spalten hinzufügen
- Spalten umbenennen

Wenn ich die Option "Speichern von Änderungen verh..." deaktiviere, kann ich meine Aktionen durchführen.
Meiner Beobachtung nach bleiben dabei auch die Daten der Tabelle erhalten.

Mich würde interessieren was die "Neuerstellung" für Auswirkungen (negative Folgen) hat bzw. haben kann.
Irgendwo habe ich (ohne detailliertere Erläuterungen) gelesen, dass "Metadaten" betroffen sein können.
Member: eisbein
Solution eisbein Mar 05, 2015, updated at Mar 11, 2015 at 12:56:08 (UTC)
Goto Top
Hallo!

Lesenden und schreibenden Zugriff auf die Tabellen haben ca. 50 Tanten, Onkels ..

Ich gehe davon aus, dass dies über eine FrontEnd-Anwendung geschieht und nicht direkt am SQL-Server.

Meiner Beobachtung nach bleiben dabei auch die Daten der Tabelle erhalten.

Das soll ja auch so sein -> siehe nochmal deinen Link, da steht beschrieben was sich ändert.

Mich würde interessieren was die "Neuerstellung" für Auswirkungen (negative Folgen) hat bzw. haben kann.

Angenommen ich will gerade einen Eintrag speichern und du änderst die Typenbezeichnung. Ich wäre nicht glücklich darüber face-smile
Es geht da um den Lese-Schreib-Zugriff auf die Tabelle. Datenverlust ist zu erwarten.

Gruß
Eisbein
Member: MadMax
Solution MadMax Mar 06, 2015, updated at Mar 11, 2015 at 12:56:16 (UTC)
Goto Top
Hallo Hoootz,

es kann passieren, daß die Neuerstellung nicht richtig ausgeführt werden kann, z.B. wegen irgendwelcher Fremdschlüssel oder sonstiger Constraints. Dann kann Datenverlust die Folge sein. Auf einer Testdatenbank und natürlich auch mit Datensicherung ist das kein Thema. Aber Du solltest nicht mal schnell, weil es ja so einfach geht, auf der Produktivdatenbank irgendwelche Änderungen durchführen, wenn vielleicht noch Benutzer darauf arbeiten. Auch mit Datensicherung kann das trotzdem mal ein bisschen dauern, bis die DB wieder richtig läuft.

Dieser Schalter dürfte also wohl ein Schutz sein, daß man nicht mal auf die Schnelle massive Änderungen durchführt und die Konsequenzen nicht überschaut, weil man selber ja nur ein bisschen rumklickt und die nötigen Skripte dafür, die dann vielleicht recht umfangreich sind, der SQL Server erstellt.

Gruß, Mad Max
Member: Hoootz
Hoootz Mar 06, 2015 at 14:34:18 (UTC)
Goto Top
Hallo,

sofern sich nur die Dinge in der Tabelle ändern die ich tatsächlich ändern möchte, dann ist ja alles wunderbar. Und das in der Zeit meiner Änderungen keiner auf der DB arbeitet kann sichergestellt werden.

Bisher habe ich ein misslungenes "Neuerstellen" von Tabellen auf der Testdatenbank noch nicht bemerkt. Was vermutlich daran liegt, dass es immer geklappt hat. ;)

Ich nehme mal an das SSMS bzw. der SQL Server würde dann eine Meldung ausgeben, bzw. die Daten wäre dann offensichtlich nicht mehr verfügbar.

Gruß Hoootz