"select * in table" Будет ли он работать для вставки данных в существующую таблицу

Я пытаюсь вставить данные из одной из существующих таблиц в другую существующую таблицу.

Можно ли вставлять данные в любую существующую таблицу с помощью запроса select * into. Я думаю, что это можно сделать с помощью объединения, но в этом случае мне нужно записать все данные моей существующей таблицы во временную таблицу, затем отбросить эту таблицу и, наконец, применить к ней союз, чтобы вставить все записи в одну и ту же таблицу

например.

select * into #tblExisting from tblExisting
drop table tblExisting
select * into tblExisting from #tblExisting union tblActualData

Здесь tblExisting - это таблица, где я действительно хочу хранить все данные tblActualData - это таблица, в которой данные должны быть добавлены к tblExisting.

Правильный метод. Есть ли у нас другая альтернатива?

Ответ 2

Нет, вы не можете использовать SELECT INTO для вставки данных в существующую таблицу.

Документация делает это очень ясно:

SELECT... INTO создает новую таблицу в файловой группе по умолчанию и вставляет в нее результирующие строки из запроса.

Как правило, вы избегаете использования SELECT INTO в процессе производства, поскольку он дает вам очень мало контроля над тем, как создается таблица, и может привести к разным неприятным проблемам с блокировкой и другими проблемами производительности. Вы должны явно создавать схемы и использовать INSERT - даже для временных таблиц.

Ответ 4

@Райан Чейз Вы можете сделать это, выбрав все столбцы, используя *? Да!

INSERT INTO yourtable2 SELECT * FROM yourtable1