Wie man mehrere Spalten mit einer einzelnen ALTER TABLE-Anweisung in SQL Server?
Möchte ich schreiben, um eine einzelne SQL-Befehl drop mehrere Spalten aus einer einzelnen Tabelle in eine ALTER TABLE
- Anweisung.
Vom MSDN ist die ALTER TABLE-Dokumentation...
DROP { [CONSTRAINT] constraint_name | COLUMN column_name }
Gibt an, dass constraint_name column_name oder aus der Tabelle entfernt wird. DROP COLUMN ist nicht zulässig, wenn der Kompatibilitätsgrad kleiner oder gleich 65 ist, früher. Mehrere Spalten und Einschränkungen aufgeführt werden können.
Er sagt, dass mehrere Spalten aufgelistet werden, in der die Aussage aber die syntax nicht zeigen, einem optionalen Komma oder irgendetwas, das wäre auch der Hinweis auf die syntax.
Wie soll ich schreiben meine SQL drop mehrere Spalten in einer Erklärung (wenn möglich)?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Für SQL Server:
Die syntax ist
Für MySQL:
Zusammenfassung
Oracle:
MS SQL:
MySql:
PostgreSQL
Bewusst sein
DROP COLUMN nicht physisch entfernen Sie die Daten für einige DBMS. E. g. für MS SQL. Für Feste Länge Typen (int, numeric, float, datetime, uniqueidentifier, etc) der Raum ist verbraucht, auch für Datensätze Hinzugefügt, nachdem die Spalten wurden gelöscht. Um loszuwerden, die Verschwendung tun "ALTER TABLE ..." neu erstellen.
COLUMN
Schlüsselwort in MySql.Bewusst sein, dass die DROP-SPALTE, die nicht physisch entfernen Sie die Daten, und für die Feste Länge Typen (int, numeric, float, datetime, uniqueidentifier, etc) der Raum ist verbraucht, auch für Datensätze Hinzugefügt, nachdem die Spalten wurden gelöscht. Um loszuwerden, die Verschwendung tun
ALTER TABLE ... REBUILD
.ALTER INDEX PK_IndexName ON TableName REBUILD
und es würde den Speicherplatz freizugeben. Irgendwie ist hier beschrieben: msdn.microsoft.com/en-us/library/ms189858.aspx unter dem Abschnitt "Neuerstellen eines Indexes".Kann dies zu spät sein, aber teilen es für den neuen Benutzer den Besuch dieser Frage.
Fallen mehrere Spalten eigentliche syntax ist
Also für jede Spalte, die Sie angeben müssen, "drop column" in Mysql 5.0.45.
How should I write my SQL to drop multiple columns in one statement (if possible)?
dem Kontext des Satzes deutet darauf hin, dass das "mein" bezeichnet der Autor und "SQL" bezeichnet die Sprache.Die Syntax wie angegeben, das von Microsoft für das löschen einer Spalte, die Teil einer ALTER - Anweisung ist dies
Beachten Sie, dass die [,...n] wird nach der Spalte name und am Ende das ganze drop-Klausel. Was dies bedeutet ist, dass es gibt zwei Möglichkeiten zum löschen von mehreren Spalten. Sie können entweder tun Sie dies:
oder diese
Diese zweite syntax ist nützlich, wenn Sie möchten, kombinieren Sie die Tropfen in einer Spalte löschen einer Einschränkung:
Beim löschen von Spalten in SQL Server nicht den Speicherplatz freizugeben durch die Spalten fiel. Für Datentypen, die gespeichert werden inline in den Zeilen (int z.B.) kann es sogar belegen den Speicherplatz auf der neu hinzugefügten Zeilen nach der alter-Anweisung. Um dies zu umgehen, müssen Sie erstellen Sie einen gruppierten index für die Tabelle oder Neuerstellen des gruppierten index, wenn Sie schon einen hat. Neuerstellen des index kann man mit einem REBUILD-Befehl nach dem ändern der Tabelle. Aber seien Sie gewarnt, dies kann langsam auf sehr großen Tischen. Zum Beispiel:
For MySQL (Version 5.6), man kann nicht mehrere Spalte drop mit einem einzigen
drop
-Anweisung, sondern mehreredrop
-Aussagen:BTW
drop <col_name>
ist shorthanded fürdrop column <col_name>
wie Sie sehen können ausdrop c3
oben.Wenn es nur einzelne Spalte zu löschen, die die folgende syntax funktioniert
ALTER TABLE tablename DROP COLUMN column1;
Für das löschen mehrere Spalten, die
DROP COLUMN
doesnot Arbeit, die die folgende syntax funktioniertALTER TABLE tablename DROP (column1, column2, column3......);
Generic:
E. g:
diese Abfrage ändern, die mehrere Spalte zu testen.
für MySQL-DB.
Oder Sie können hinzufügen, einige Spalte, während die änderung in der gleichen Zeile:
Versuchen Sie folgenden Abfragen:
oder
oder