Вы можете использовать синтаксис INSERT INTO ... SELECT ...
, если таблица назначения уже существует, и вы просто хотите добавить к ней строки.Легко проверить, выбираете ли вы свои данные, выполнив только часть SELECT
.
Insert into existingTable ( Column1, Column2, Column3, ... )
Select 1, Column2, Column3
From tableName
Where ....
Вы не ограничены простым выбором, оператор SELECT
может быть настолько сложным, насколько это необходимо.Также вам не нужно указывать имена для выбранных столбцов, так как они будут предоставлены таблицей назначения.Однако, если у вас есть столбцы автоинкремента в таблице dest, вы можете либо опустить их в списке столбцов INSERT
, либо использовать конфигурацию ' set identity_insert '.
Если вы хотитечтобы создать новую таблицу из существующих данных, вы должны использовать синтаксис SELECT ... INTO ...
Select 1 as Column1, Column2, Column3
Into newTable
From tableName
Where ....
Опять же, выбор может быть произвольно сложным, но, поскольку имена столбцов взяты из оператора select, всестолбцы должны иметь явные имена.Этот синтаксис выдаст ошибку, если таблица 'newTable' уже существует.Эта форма очень удобна, если вы хотите быстро сделать копию таблицы, чтобы попробовать что-то.