Відповіді:
Оператор insert фактично має синтаксис для виконання саме цього. Це набагато простіше, якщо ви вказуєте назви стовпців, а не вибираєте "*", хоча:
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 - це коли ви хочете створити нову таблицю як частину команди.
Ви не вказали, чи потрібно створити нову таблицю як частину команди, тому ВСТАВИТЬ В ІНТЕРНЕТ ... SELECT FROM має бути добре, якщо ваша таблиця призначення вже існує.
Спробуйте це:
INSERT INTO newTable SELECT * FROM initial_Table
Ви можете вставити за допомогою підзапиту наступним чином:
INSERT INTO new_table (columns....)
SELECT columns....
FROM initial_table where column=value
Від сюди:
SELECT *
INTO new_table_name [IN externaldatabase]
FROM old_tablename
Ви можете використовувати select into
оператор. Дивіться більше у W3Schools .
Існує простіший спосіб, коли вам не потрібно вводити жоден код (ідеально підходить для тестування або разових оновлень):
Крок 1
Крок 2
Крок 3
Крок 4
Крок 5
Примітка - 1 : Якщо стовпці не в правильному порядку, як у таблиці "Ціль", ви завжди можете виконувати крок 2 та вибирати стовпці в тому ж порядку, що і в таблиці "Ціль".
Примітка - 2 - Якщо у вас є стовпці особи, SET IDENTITY_INSERT sometableWithIdentity ON
виконайте вказані вище дії та виконайте наведені вище діїSET IDENTITY_INSERT sometableWithIdentity OFF
Якщо ви постійно передаєте багато даних, тобто не заповнюєте тимчасову таблицю, я рекомендую використовувати імпорт / експорт даних SQL Server для відображення таблиць у таблицю.
Інструмент імпорту / експорту, як правило, краще, ніж прямий SQL, коли у вас відображаються перетворення типів та можливе усічення значення. Як правило, чим складніше ваше картографування, тим продуктивніше ви використовуєте такий інструмент ETL, як Integration Services (SSIS), а не прямий SQL.
Інструмент імпорту / експорту - це фактично майстер SSIS, і ви можете зберегти свою роботу як пакет dtsx.
Я думаю, що це твердження може робити те, що ти хочеш.
INSERT INTO newTableName (SELECT column1, column2, column3 FROM oldTable);
Dim ofd As New OpenFileDialog
ofd.Filter = "*.mdb|*.MDB"
ofd.FilterIndex = (2)
ofd.FileName = "bd1.mdb"
ofd.Title = "SELECCIONE LA BASE DE DATOS ORIGEN (bd1.mdb)"
ofd.ShowDialog()
Dim conexion1 = "Driver={Microsoft Access Driver (*.mdb)};DBQ=" + ofd.FileName
Dim conn As New OdbcConnection()
conn.ConnectionString = conexion1
conn.Open()
'EN ESTE CODIGO SOLO SE AGREGAN LOS DATOS'
Dim ofd2 As New OpenFileDialog
ofd2.Filter = "*.mdb|*.MDB"
ofd2.FilterIndex = (2)
ofd2.FileName = "bd1.mdb"
ofd2.Title = "SELECCIONE LA BASE DE DATOS DESTINO (bd1.mdb)"
ofd2.ShowDialog()
Dim conexion2 = "Driver={Microsoft Access Driver (*.mdb)};DBQ=" + ofd2.FileName
Dim conn2 As New OdbcConnection()
conn2.ConnectionString = conexion2
Dim cmd2 As New OdbcCommand
Dim CADENA2 As String
CADENA2 = "INSERT INTO EXISTENCIA IN '" + ofd2.FileName + "' SELECT * FROM EXISTENCIA IN '" + ofd.FileName + "'"
cmd2.CommandText = CADENA2
cmd2.Connection = conn2
conn2.Open()
Dim dA2 As New OdbcDataAdapter
dA2.SelectCommand = cmd2
Dim midataset2 As New DataSet
dA2.Fill(midataset2, "EXISTENCIA")