#sql #sql-server #tsql #sql-insert
#sql #sql-сервер #tsql #sql-вставка
Вопрос:
Я table1
выгляжу так:
col1 col2 col3
-------------------
foo bar baz
lorem ipsum dolor
И table2
выглядит как:
col1 col2 col3 col4 col5
-----------------------------------------
sitting onthe dock ofthe bay
heard it through the grapevine
Я хочу импортировать все данные из table1
в table2
:
col1 col2 col3 col4 col5
-----------------------------------------
sitting onthe dock ofthe bay
heard it through the grapevine
foo bar baz
lorem ipsum dolor
Обычно, если структура данных одинакова, я бы использовал приведенное ниже, но здесь это не работает (очевидно).
select * into table2 from table1
Каков правильный способ импорта в этом случае?
Комментарии:
1. Используйте
INSERT
оператор, а неINTO
предложение. Быстрый поиск покажет вам, как использовать синтаксис; это фундаментальная часть SQL.2. Также, если вы попытались
INTO
, это не сработало бы (очевидно ;)), посколькуtable2
уже существует;INTO
предложение как создает таблицу, так и вставляет данные. Если таблица уже существует, оператор завершается ошибкой.
Ответ №1:
Вам нужно будет указать столбцы с помощью Insert INTO
Insert Into table2 (col1,col2,col3)
Select col1,col2,col3
From table1
Комментарии:
1. И явное указание столбцов для an
INSERT
в любом случае обычно считается общепринятой наилучшей практикой — так что привыкайте делать это — всегда 🙂