Answers:
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语法适用于您要在命令中创建新表的情况。
您没有指定是否需要在命令中创建新表,因此如果目标表已经存在,则INSERT INTO ... SELECT FROM应该没问题。
试试这个:
INSERT INTO newTable SELECT * FROM initial_Table
从这里:
SELECT *
INTO new_table_name [IN externaldatabase]
FROM old_tablename
您可以使用一条select into
语句。 查看更多在W3School。
有一种简便的方法,您无需键入任何代码(理想的测试或一次性更新):
第1步
第2步
第三步
第4步
第5步
注意-1:如果列的排列顺序与目标表中的排列顺序不正确,则始终可以按照步骤2进行操作,并按照与目标表中相同的顺序选择列
注意-2-如果您有“身份”列,请执行然后执行SET IDENTITY_INSERT sometableWithIdentity ON
上述步骤,最后执行SET IDENTITY_INSERT sometableWithIdentity OFF
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")