Ответ 1
Вы должны попробовать
INSERT INTO ExistingTable (Columns,..)
SELECT Columns,...
FROM OtherTable
Посмотрите INSERT
Я пытаюсь вставить данные из одной из существующих таблиц в другую существующую таблицу.
Можно ли вставлять данные в любую существующую таблицу с помощью запроса select * into
.
Я думаю, что это можно сделать с помощью объединения, но в этом случае мне нужно записать все данные моей существующей таблицы во временную таблицу, затем отбросить эту таблицу и, наконец, применить к ней союз, чтобы вставить все записи в одну и ту же таблицу
например.
select * into #tblExisting from tblExisting
drop table tblExisting
select * into tblExisting from #tblExisting union tblActualData
Здесь tblExisting - это таблица, где я действительно хочу хранить все данные tblActualData - это таблица, в которой данные должны быть добавлены к tblExisting.
Правильный метод. Есть ли у нас другая альтернатива?
Вы должны попробовать
INSERT INTO ExistingTable (Columns,..)
SELECT Columns,...
FROM OtherTable
Посмотрите INSERT
Нет, вы не можете использовать SELECT INTO
для вставки данных в существующую таблицу.
Документация делает это очень ясно:
SELECT... INTO создает новую таблицу в файловой группе по умолчанию и вставляет в нее результирующие строки из запроса.
Как правило, вы избегаете использования SELECT INTO
в процессе производства, поскольку он дает вам очень мало контроля над тем, как создается таблица, и может привести к разным неприятным проблемам с блокировкой и другими проблемами производительности. Вы должны явно создавать схемы и использовать INSERT
- даже для временных таблиц.
Обновление от CTE? http://www.sqlservercentral.com/Forums/Topic629743-338-1.aspx
@Райан Чейз Вы можете сделать это, выбрав все столбцы, используя *? Да!
INSERT INTO yourtable2
SELECT * FROM yourtable1