Mam dwie identyczne tabele i muszę skopiować wiersze z tabeli do innej. Jaki jest najlepszy sposób, aby to zrobić? (Muszę programowo skopiować tylko kilka wierszy, nie muszę używać narzędzia do kopiowania zbiorczego).
Odpowiedzi:
Dopóki nie ma kolumn tożsamości, możesz po prostu
INSERT INTO TableNew
SELECT * FROM TableOld
WHERE [Conditions]
SET IDENTITY_INSERT < table > ON
(i SET IDENTITY_INSERT < table > OFF
), aby tymczasowo wyłączyć kolumnę tożsamości w tabeli, do której próbujesz wstawić. Pracowałem dla mnie, próbując przywrócić kilka brakujących rekordów w środku zbioru danych.
Alternatywna składnia:
INSERT tbl (Col1, Col2, ..., ColN)
SELECT Col1, Col2, ..., ColN
FROM Tbl2
WHERE ...
Zapytanie wybierające może (oczywiście) zawierać wyrażenia, opisy przypadków, stałe / literały itp.
Odpowiedź Jarretta tworzy nową tabelę.
Odpowiedź Scotta wstawia do istniejącej tabeli o tej samej strukturze.
Możesz również wstawić do tabeli o innej strukturze:
INSERT Table2
(columnX, columnY)
SELECT column1, column2 FROM Table1
WHERE [Conditions]
INSERT INTO DestTable
SELECT * FROM SourceTable
WHERE ...
działa w SQL Server
SELECT * INTO < new_table > FROM < existing_table > WHERE < clause >
SELECT * INTO [SQLTEST].[dbo].[EMPLOYEES] FROM [SQLPROD].[dbo].[EMPLOYEES]