it-swarm.com.de

"select * into table" Funktioniert das Einfügen von Daten in eine vorhandene Tabelle

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?

15
Shantanu Gupta

Du solltest es versuchen

INSERT INTO ExistingTable (Columns,..)
SELECT Columns,...
FROM OtherTable

Schauen Sie sich an EINFÜGEN

und SQL SERVER - Einfügen von Daten aus einer Tabelle in eine andere Tabelle - INSERT INTO SELECT - SELECT INTO TABLE

25
Adriaan Stander

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.

4
Aaronaught

@Ryan Chase Können Sie dies tun, indem Sie alle Spalten mit * auswählen? Ja!

INSERT INTO yourtable2 SELECT * FROM yourtable1

0
ShruS
0
adolf garlic