Ich versuche, Daten aus einer meiner vorhandenen Tabellen in eine andere vorhandene Tabelle einzufügen.
Ist es möglich, Daten mit select * into
query in eine vorhandene Tabelle einzufügen. Ich denke, es kann mit union durchgeführt werden, aber in diesem Fall muss ich alle Daten meiner vorhandenen Tabelle in eine temporäre Tabelle aufnehmen und diese Tabelle dann löschen Schließlich wenden Sie union an, um alle Datensätze in dieselbe Tabelle einzufügen
z.B.
select * into #tblExisting from tblExisting
drop table tblExisting
select * into tblExisting from #tblExisting union tblActualData
Hier ist tblExisting die Tabelle, in der ich eigentlich alle Daten speichern möchte. TblActualData ist die Tabelle, aus der Daten an tblExisting angehängt werden sollen.
Ist es die richtige Methode. Haben wir eine andere Alternative?
Du solltest es versuchen
INSERT INTO ExistingTable (Columns,..)
SELECT Columns,...
FROM OtherTable
Schauen Sie sich an EINFÜGEN
Nein, Sie können SELECT INTO
nicht verwenden, um Daten in eine vorhandene Tabelle einzufügen.
Die Dokumentation macht dies sehr klar:
SELECT… INTO erstellt eine new table in der Standarddateigruppe und fügt die resultierenden Zeilen aus der Abfrage in diese ein.
Im Allgemeinen möchten Sie die Verwendung von SELECT INTO
in der Produktion vermeiden, da Sie dadurch sehr wenig Einfluss darauf haben, wie die Tabelle erstellt wird. Dies kann zu allerlei bösen Sperren und anderen Leistungsproblemen führen. Sie sollten Schemas explizit erstellen und INSERT
verwenden - auch für temporäre Tabellen.
@Ryan Chase Können Sie dies tun, indem Sie alle Spalten mit * auswählen? Ja!
INSERT INTO yourtable2
SELECT * FROM yourtable1
Update vom CTE? http://www.sqlservercentral.com/Forums/Topic629743-338-1.aspx