У меня две одинаковые таблицы, и мне нужно скопировать строки из таблицы в другую. Как лучше всего это сделать? (Мне нужно программно скопировать всего несколько строк, мне не нужно использовать утилиту массового копирования).
Ответы:
Пока нет столбцов идентификации, вы можете просто
INSERT INTO TableNew
SELECT * FROM TableOld
WHERE [Conditions]
SET IDENTITY_INSERT < table > ON
(и SET IDENTITY_INSERT < table > OFF
), чтобы временно отключить столбец идентификаторов в таблице, в которую вы пытаетесь вставить. У меня сработало, пытаясь восстановить несколько недостающих записей в середине набора данных.
Альтернативный синтаксис:
INSERT tbl (Col1, Col2, ..., ColN)
SELECT Col1, Col2, ..., ColN
FROM Tbl2
WHERE ...
Запрос на выбор может (конечно) включать выражения, операторы case, константы / литералы и т. Д.
Ответ Джарретта создает новую таблицу.
Ответ Скотта вставляется в существующую таблицу с той же структурой.
Вы также можете вставить в таблицу с другой структурой:
INSERT Table2
(columnX, columnY)
SELECT column1, column2 FROM Table1
WHERE [Conditions]
INSERT INTO DestTable
SELECT * FROM SourceTable
WHERE ...
работает в SQL Server
SELECT * INTO < new_table > FROM < existing_table > WHERE < clause >
SELECT * INTO [SQLTEST].[dbo].[EMPLOYEES] FROM [SQLPROD].[dbo].[EMPLOYEES]