webentwicklung-frage-antwort-db.com.de

SQL-Abfrage zum Hinzufügen einer neuen Spalte nach einer vorhandenen Spalte in SQL Server 2005

Ich brauche eine SQL-Abfrage, die eine neue Spalte nach einer vorhandenen Spalte hinzufügt, sodass die Spalte in einer bestimmten Reihenfolge hinzugefügt wird.

Bitte schlagen Sie mir vor, wenn eine ALTER-Abfrage dies tut.

37
Aayushi

Microsoft SQL (AFAIK) erlaubt Ihnen nicht, die Tabelle zu ändern und eine Spalte nach einer bestimmten Spalte hinzuzufügen. Am besten verwenden Sie Sql Server Management Studio. Sie können entweder die Tabelle löschen oder erneut hinzufügen oder eine neue Tabelle erstellen und die Daten manuell verschieben. beide sind nicht sehr anmutig.

MySQL macht jedoch:

ALTER TABLE mytable
ADD COLUMN  new_column <type>
AFTER       existing_column
33
Brad Christie

ALTER macht das nicht, weil die Spaltenreihenfolge egal zum Speichern oder Abfragen ist

Wenn Sie SQL Server verwenden, müssen Sie die Spalten mit dem SSMS-Tabellen-Designer anordnen, wodurch ein Skript generiert werden kann, das die Tabelle löscht und neu erstellt

Juni 2013 bearbeiten

Crosslink zu meiner Antwort hier: Auswirkungen auf die Leistung/Speicherplatz bei der Bestellung von SQL Server-Spalten?

19
gbn

Es ist möglich. 

Fügen Sie einfach jede Spalte wie üblich hinzu (als letzte Spalte).

Zweitens in SQL Server Management Studio Get in Tools => Options.

Deaktivieren Sie im Tab "Designers" => "Table and Database Designers" die Option "Speichern von Änderungen verhindern, für die eine erneute Erstellung von Tabellen erforderlich ist".

Klicken Sie anschließend mit der rechten Maustaste auf Ihre Tabelle und wählen Sie "Design" . Ziehen Sie die Spalten im "Design" -Modus, um sie anzuordnen.

Vergiss nicht zu speichern.

11
ilans

Wenn Sie die Reihenfolge für Spalten im SQL-Server ändern möchten, gibt es derzeit keine direkte Möglichkeit, dies in SQL Server zu tun.

Werfen Sie einen Blick auf http://blog.sqlauthority.com/2008/04/08/sql-server-change-order-of-column-in-database-tables/

Sie können die Reihenfolge ändern, während Sie das Design für die Tabelle bearbeiten.

3
ashish.chotalia

Fügen Sie zuerst die neue Spalte über SSMStudio der alten Tabelle hinzu. Gehen Sie zu den Spalten der Datenbank >> Tabelle >>. Klicken Sie mit der rechten Maustaste auf die Spalten und wählen Sie neue Spalte . Folgen Sie dem Assistenten. Erstellen Sie dann die neue Tabelle mit den gewünschten Spalten wie folgt:

select * into my_new_table from (
select old_col1, my_new_col, old_col2, old_col3
from my_old_table 
) as A
;

Benennen Sie die Tabellen dann wie gewünscht über SSMStudio um. Gehen Sie zur Datenbank >> Tabelle >> Wählen Sie Umbenennen.

2
wwmbes

Für MS SQL Server funktioniert ALTER TABLE tablename ADD columnname INT. Es ist natürlich nicht möglich, eine Spalte nach einer bestimmten Spalte wie in MySQL mit dem Befehl after hinzuzufügen.

0
Curiousity