SQL Server 2008 R2-Add-Spalte in einer bestimmten Position
Ich bin mit SQL-Server 2008 R2 und ich will hinzufügen einer neuen Spalte in eine bestimmte Stelle in der Reihenfolge der Spalten in einer Tabelle und nicht am Ende. Ich möchte vermeiden, erstellen Sie die Tabelle. Wie mache ich das ohne die Neuerstellung der Tabelle?
d.h.
Table: Bob
==========
Col1
Col2
Neue Spalte hinzufügen.
Table: Bob
==========
Col1
NewCol
Col2
InformationsquelleAutor der Frage GordyII | 2011-02-15
Du musst angemeldet sein, um einen Kommentar abzugeben.
Können Sie nicht. Spalte werden immer am Ende der Liste der Spalte. Der einzige Weg, um die Reihenfolge zu ändern ist, erstellen Sie die Tabelle von Grund auf neu.
Dass gesagt wird, es sollte nie die Frage an Euch, was ist die tatsächliche physische Reihenfolge der Spalten, noch die logische Reihenfolge von Spalten-Definitionen. Wenn Sie Abhängigkeiten haben, die auf die Reihenfolge der Spalten können Sie Ihren code gebrochen. Wenn Sie erwarten, dass performance-Gewinne aus Spalte um, das sind Mythen.
InformationsquelleAutor der Antwort Remus Rusanu
Tun Sie es nicht. Dies geht einher mit der raten nie verwenden, WÄHLEN Sie * aus, in dem Fall, da Sie mit der Auflistung aller Spalten, warum spielt es eine Rolle, Ihre innere Ordnung?
Sagte, wenn Sie absolut müssenhier ist eine demo, nicht die Tabelle löschen. Die Spalten müssen gelöscht werden, obwohl, da kann man nicht einfügen, in der Mitte.
Wird es deutlich schwieriger, sobald man constraints und defaults beteiligt.
InformationsquelleAutor der Antwort RichardTheKiwi
Gibt es keine Möglichkeit, die ich gesehen habe zu Skriptwas Sie zu tun versuchen. Aber im SSMS (in v 10.5 mindestens) können Sie mit der rechten Maustaste auf eine Tabelle im Objekt-explorer, und wählen Sie Design. Dies ermöglicht Ihnen das einfügen einer Spalte irgendwo in der Spalte Reihenfolge. Es bewahrt Dinge auf Ihrer Tabelle-wie FK Referenzen, etc.
Ich habe nicht recherchiert, um festzustellen, welche SQL Server ist eigentlich hinter den kulissen und ich glaube nicht, verwenden Sie diese für rollouts selbst, aber es ist da.
InformationsquelleAutor der Antwort Anon Coward
können Sie dies tun, indem Sie mit der rechten klicken Sie auf die Tabelle und gehen Sie zu design und ändern Sie die Reihenfolge per drag and drop.
InformationsquelleAutor der Antwort user4270993