Antworten:
Solange es keine Identitätsspalten gibt, können Sie einfach
INSERT INTO TableNew
SELECT * FROM TableOld
WHERE [Conditions]
SET IDENTITY_INSERT < table > ON
(und SET IDENTITY_INSERT < table > OFF
) verwenden, um die Identitätsspalte in der Tabelle, in die Sie einfügen möchten, vorübergehend zu deaktivieren. Ich habe versucht, ein paar fehlende Datensätze in der Mitte des Datensatzes wiederherzustellen.
Alternative Syntax:
INSERT tbl (Col1, Col2, ..., ColN)
SELECT Col1, Col2, ..., ColN
FROM Tbl2
WHERE ...
Die Auswahlabfrage kann (natürlich) Ausdrücke, case-Anweisungen, Konstanten / Literale usw. enthalten.
Jarretts Antwort erstellt eine neue Tabelle.
Scotts Antwort wird in eine vorhandene Tabelle mit derselben Struktur eingefügt.
Sie können auch in eine Tabelle mit unterschiedlicher Struktur einfügen:
INSERT Table2
(columnX, columnY)
SELECT column1, column2 FROM Table1
WHERE [Conditions]
INSERT INTO DestTable
SELECT * FROM SourceTable
WHERE ...
funktioniert in SQL Server
SELECT * INTO < new_table > FROM < existing_table > WHERE < clause >
SELECT * INTO [SQLTEST].[dbo].[EMPLOYEES] FROM [SQLPROD].[dbo].[EMPLOYEES]