添加一个或多个记录至一个表。此动作可引用为一个追加查询。语法多重记录追加查询:INSERT INTO target [IN externaldatabase] [(field1[, field2[, ...]])]
SELECT [source.]field1[, field2[, ...]
FROM tableexpression单一记录追加查询:INSERT INTO target [(field1[, field2[, ...]])]
VALUES (value1[, value2[, ...])INSERT INTO 语句可分为以下几个部分:部分 描述
target 欲追加记录的表或查询的名称。
externaldatabase 外部数据库路径。对于路径的描述,请参阅IN 子句。
source 复制记录的来源表或查询的名称。
field1, field2 如果后面跟的是 target 参数,则为要追加数据的字段名;如果后面跟的是 source 参数,则为从其中获得数据的字段名。
tableexpression 从其中得到要插入的记录的表名。此参数可以是一个单一表名称,或由 INNER JOIN、LEFT JOIN、或 RIGHT JOIN运算合成的结果,或一个已保存的查询。
value1, value2 欲插入新记录的特定字段的值。每一个值将依照它在列表中的位置,顺序插入相关字段:value1 将被插入至追加记录的 field1 之中,value2 插入至 field2,依此类推。必须使用逗点将这些值分隔,并且将文本字段用引号 ('?) 括起来。
说明可以使用 INSERT INTO 语句来添加一个单一记录至一个表中,如以上所示使用单一记录追加查询语法。在这个例子中,代码指定了该记录每一字段的名称和值。必须指定追加数值的记录的每一个字段和那个字段的值。如果您没有指定每一个字段时,缺省值或 Null 值将被插入至没有数据的字段之中。这些记录将被添加至表的尾部。
通过使用 SELECT ... FROM 子句如以上所示的多重记录追加查询语法,也可以从另一表或查询使用 INSERT INTO追加一组记录。在这个示例中,SELECT 子句将指定追加字段至指定的 target 表。source 或 target 表可以指定一个表或查询。如果指定查询,Microsoft Jet 数据库引擎追加记录至任何和所有由查询所指定的表中。
INSERT INTO 是可选的,但当使用时,请置於 SELECT 语句之前。
如果目的表包含一个主键,确定追加至主键字段之值是唯一的且不可为 Null 值;如果没有这样做, Microsoft Jet 数据库引擎将不会追加记录。
如果使用自动编号字段追加记录至一个表中,并且您要将追加记录重新编号,不要包含自动编号字段在您的查询之中。如果您要保持字段中的原始值,请将自动编号加在您的查询之中。使用 IN 子句,可追加记录至另一个数据库中的表。
若要创建一个新的表,使用 SELECT...INTO 语句,而非创建一个创建表查询。
若要在运行追加查询之前找出哪些记录是被追加的,首先执行和查阅一个使用相同的选择条件之选定查询所获得的结果。
追加查询为从一个或多个表中复制记录至另一个表。您追加的表包含记录将不会被追加查询所影响。
除了从另一表中来追加现存的记录,可以指定在单一追加记录之中使用 VALUES 子句来指定对每一字段的值。如果您省略字段列表,VALUES 子句在表之中必须包含每一字段的值;否则, INSERT运算将会失败。使用额外的 INSERT INTO 语句与一个 VALUES 子句来创建您要的每一个额外的记录。

解决方案 »

  1.   

    此示例选择在一假设的新客户表中的所有记录,并且增加它们至客户表中。当个别的栏没有设计时,此 SELECT 表的列名必须完全地符合那些在 INSERT INTO 表中的列名。Sub InsertIntoX1() Dim dbs  As Database ' 在您的计算机中修改此行使其正确指到 Northwind 的路径。
    Set dbs = OpenDatabase("Northwind.mdb")

    ' 在新客户表中选择所有记录,
    ' 并且添加它们至客户表。
    dbs.Execute " INSERT INTO Customers " _
    & "SELECT * " _
    & "FROM [New Customers];"

    dbs.CloseEnd Sub此示例创建在员工表中的添加记录。Sub InsertIntoX2() Dim dbs  As Database ' 在您的计算机中修改此行使其正确指到 Northwind 的路径。
    Set dbs = OpenDatabase("Northwind.mdb")

    ' 创建在员工表中的新记录,
    ' 其姓氏是 Washington,名字是 Harry,
    ' 并且职称是 Trainee。
    dbs.Execute " INSERT INTO Employees " _
    & "(FirstName,LastName, Title) VALUES " _
    & "('Harry', 'Washington', 'Trainee');"

    dbs.CloseEnd Sub
      

  2.   

    假设又两个数据库 a,b(但是要求是一个服务器上的)
    a 有表格table1,b有表格table2
    insert into dbo.a.table1 values select column1,column2,.... 
    from dbo.b.table2