Я пытаюсь вставить все значения из одной таблицы в другую. Но оператор вставки принимает значения, но я бы хотел, чтобы он принял выбор * из initial_Table. Это возможно?
источник
Я пытаюсь вставить все значения из одной таблицы в другую. Но оператор вставки принимает значения, но я бы хотел, чтобы он принял выбор * из initial_Table. Это возможно?
Оператор вставки на самом деле имеет синтаксис для этого. Намного проще, если вы укажете имена столбцов, а не выбираете «*»:
INSERT INTO new_table (Foo, Bar, Fizz, Buzz)
SELECT Foo, Bar, Fizz, Buzz
FROM initial_table
-- optionally WHERE ...
Я лучше проясню это, потому что по какой-то причине этот пост получил несколько голосов против.
Синтаксис INSERT INTO ... SELECT FROM предназначен для случаев, когда таблица, в которую вы вставляете («new_table» в моем примере выше), уже существует. Как говорили другие, синтаксис SELECT ... INTO предназначен для случаев, когда вы хотите создать новую таблицу как часть команды.
Вы не указали, нужно ли создавать новую таблицу как часть команды, поэтому INSERT INTO ... SELECT FROM подойдет, если ваша целевая таблица уже существует.
Попробуй это:
источник
Вы можете вставить с помощью подзапроса следующим образом:
источник
От сюда:
источник
Вы можете использовать
select into
заявление. Смотрите больше на W3Schools .источник
Есть более простой способ, при котором вам не нужно вводить код (идеально подходит для тестирования или одноразовых обновлений):
Примечание - 1 : если столбцы расположены не в правильном порядке, как в целевой таблице, вы всегда можете выполнить шаг 2 и выбрать столбцы в том же порядке, что и в целевой таблице
Примечание - 2 - Если у вас есть столбцы Identity, выполните,
SET IDENTITY_INSERT sometableWithIdentity ON
а затем выполните указанные выше шаги, а в конце выполнитеSET IDENTITY_INSERT sometableWithIdentity OFF
источник
Если вы постоянно переносите много данных, то есть не заполняете временную таблицу, я бы рекомендовал использовать SQL Server Import / Export Data. для сопоставления таблиц с таблицами.
Инструмент импорта / экспорта обычно лучше, чем простой SQL, когда у вас есть преобразования типов и возможное усечение значений в вашем отображении. Как правило, чем сложнее ваше сопоставление, тем более продуктивно вы используете инструмент ETL, такой как службы интеграции (SSIS), вместо прямого SQL.
Инструмент импорта / экспорта на самом деле является мастером SSIS, и вы можете сохранить свою работу как пакет dtsx.
источник
Я думаю, это заявление может сделать то, что вы хотите.
источник
источник