Ich habe Tabelle A mit 5 Spalten:
TableA
--
Name
Tel
Email
Address
Ich möchte eine neue Spalte (mobil) zwischen Tel & E-Mail hinzufügen:
TableA
--
Name
Tel
Mobile
Email
Address
Wenn ich benutze
ALTER TABLE TableA
ADD COLUMN Mobile INT NOT NULL
Die mobile Spalte wird am Ende der Tabelle hinzugefügt.
Gibt es eine Möglichkeit, dies zu erreichen, ohne die Tabelle zu löschen und Daten in eine neue Tabelle zu verschieben?
firstname,lastname
ich nicht möchte, dass der Vorname am Anfang und der Nachname am Ende steht.Antworten:
Nein. Der Wiederaufbau der Tabelle ist der einzige Weg. Siehe dieses Verbindungselement zur Bestätigung .
Sie können SSMS verwenden, um dies für Sie zu skripten, wenn Sie dem etwas fehlerhaften Tabellen-Designer vertrauen.
Außerdem können Sie eine Ansicht mit der gewünschten Spaltenreihenfolge deklarieren, um logisch verwandte Spalten zu gruppieren.
quelle
Saving changes is not permitted, the changes you have made require the table to be dropped and re-created
, wie ich das Skript verwende Ich weiß nicht, warum Microsoft seine Meinung zu dieser Funktion geändert hat.FILESTREAM
On-Spalten, wenn er die Tabelle neu erstellt). Verwenden Sie diese also einfach, um die Änderung zu skripten und sie dann auf ihre Richtigkeit zu überprüfen.Wenn Sie sehen, dass das Speichern von Änderungen nicht zulässig ist. Nach dem Hinzufügen einer neuen Spalte in Designer mit SQL Server 2005 oder höher müssen Sie Extras -> Optionen auswählen, Designer auswählen und das Kontrollkästchen unter Tabellenoptionen mit dem Namen "Speichern von Änderungen verhindern, die eine Neuerstellung der Tabelle erfordern" deaktivieren. Nachdem Sie diesen Schritt ausgeführt haben, sollten Sie in der Lage sein, Ihre Änderungen an der gewünschten Stelle zu speichern.
Es ist seltsam, dass Sie mit MySQL überall Spalten mit SQL hinzufügen können, aber mit SQL Server können Sie dies nur mit Designer tun. Hmmm. Es scheint, als müssten irgendwo versteckte magische Befehle sein! ;-);
quelle