Ich versuche, alle Werte einer Tabelle in eine andere einzufügen. Aber die insert-Anweisung akzeptiert Werte, aber ich möchte, dass sie ein select * aus der initial_Table akzeptiert. Ist das möglich?
quelle
Ich versuche, alle Werte einer Tabelle in eine andere einzufügen. Aber die insert-Anweisung akzeptiert Werte, aber ich möchte, dass sie ein select * aus der initial_Table akzeptiert. Ist das möglich?
Die insert-Anweisung hat tatsächlich eine Syntax dafür. Es ist viel einfacher, wenn Sie die Spaltennamen angeben, anstatt "*" auszuwählen:
INSERT INTO new_table (Foo, Bar, Fizz, Buzz)
SELECT Foo, Bar, Fizz, Buzz
FROM initial_table
-- optionally WHERE ...
Ich sollte dies besser klarstellen, da dieser Beitrag aus irgendeinem Grund einige Abstimmungen erhält.
Die Syntax INSERT INTO ... SELECT FROM gilt für den Fall, dass die Tabelle, in die Sie einfügen ("new_table" in meinem obigen Beispiel), bereits vorhanden ist. Wie bereits erwähnt, dient die Syntax SELECT ... INTO dazu, wenn Sie die neue Tabelle als Teil des Befehls erstellen möchten.
Sie haben nicht angegeben, ob die neue Tabelle als Teil des Befehls erstellt werden muss. INSERT INTO ... SELECT FROM sollte daher in Ordnung sein, wenn Ihre Zieltabelle bereits vorhanden ist.
Versuche dies:
quelle
Sie können mithilfe einer Unterabfrage Folgendes einfügen:
quelle
Von hier aus:
quelle
Sie können eine
select into
Anweisung verwenden. Weitere Informationen finden Sie unter W3Schools .quelle
Es gibt eine einfachere Möglichkeit, keinen Code einzugeben (ideal zum Testen oder für einmalige Updates):
Hinweis - 1 : Wenn die Spalten nicht in der richtigen Reihenfolge wie in der Zieltabelle vorliegen, können Sie immer Schritt 2 ausführen und die Spalten in derselben Reihenfolge wie in der Zieltabelle auswählen
Hinweis - 2 - Wenn Sie Identitätsspalten haben, führen Sie die
SET IDENTITY_INSERT sometableWithIdentity ON
obigen Schritte aus und befolgen Sie sie. Führen Sie sie am Ende ausSET IDENTITY_INSERT sometableWithIdentity OFF
quelle
Wenn Sie viele Losdaten dauerhaft übertragen, dh keine temporäre Tabelle füllen, würde ich empfehlen, SQL Server-Import / Export-Daten für Zuordnungen von Tabelle zu Tabelle zu verwenden.
Das Import / Export-Tool ist normalerweise besser als reines SQL, wenn Sie Typkonvertierungen und mögliche Wertkürzungen in Ihrer Zuordnung haben. Je komplexer Ihre Zuordnung ist, desto produktiver ist im Allgemeinen die Verwendung eines ETL-Tools wie Integration Services (SSIS) anstelle von direktem SQL.
Das Import / Export-Tool ist eigentlich ein SSIS-Assistent, und Sie können Ihre Arbeit als dtsx-Paket speichern.
quelle
Ich denke, diese Aussage könnte tun, was Sie wollen.
quelle
quelle