INSERT INTO 语句 (Microsoft Access SQL)

适用于:Access 2013、Office 2013

向表中添加一个或多个记录。 该语句称为追加查询。

语法

多记录追加查询

INSERT INTO 目标 [ (field1[, field2[, ...]]) ] [IN externaldatabase]SELECT [source.]field1[, field2[, ...] FROM tableexpression

单记录追加查询

INSERT INTO 目标 [ (field1[, field2[, ...]]) ] VALUE (value1[, value2[, ...])

INSERT INTO 语句包含以下部分:

Part

说明

target

要追加记录的表或查询的名称。

field1, field2

如果后跟一个 target 参数,为要追加数据的字段的名称;如果后跟一个 source 参数,则为要从中获取数据的字段的名称。

externaldatabase

外部数据库的路径。 有关路径的说明,请参阅 IN 子句。

source

要从中复制记录的表或查询的名称。

tableexpression

作为插入记录来源的表的名称。 该参数可以是单个表名或者是从 INNER JOINLEFT JOINRIGHT JOIN 操作或保存的查询产生的组合结果。

value1, value2

要插入新记录特定字段中的值。 每个值将插入到与该值在列表中的位置相对应的字段内:value1 将插入到新记录的 field1 字段,value2 插入到 field2 字段等等。 这些值必须用逗号分隔,并且用引号 (' ') 引起来。

备注

通过如上所述的单记录追加查询语法,可以使用 INSERT INTO 语句向表中追加单个记录。 在这种情形下,代码要指定每个记录字段的名称和值。 必须指定每一个将被赋值的记录字段,并且要给出该字段的值。 如果没有指定每个字段的值,则在缺少值的列中插入默认值或 Null 值。 记录将追加到表的末尾。

通过如上所示的多字段追加查询语法的 SELECT ... FROM 子句,还可以使用 INSERT INTO 追加一组来自其他表或查询的记录。 在这种情况下,SELECT 子句指定要追加到指定 目标 表的字段。

sourcetarget 表可以指定表或查询。 如果指定了查询,Microsoft Access 数据库引擎会将记录追加到查询指定的任何表或所有表中。

INSERT INTO 是可选的,但是如果包括它,应将它置于 SELECT 语句前面。

如果目标表中包含主键,请确保追加到主键字段中的值是唯一的、非 Null 的;否则,Microsoft Access 数据库引擎不会追加这些记录。

如果将一个自动编号字段记录追加到一个表中,并且希望对该追加的记录重新编号,那么不要在查询语句中包含自动编号字段。 如果希望保持字段的原始值,请务必在查询语句中包含自动编号字段。

通过 IN 子句可以将记录追加到其他数据库的表中。

若要新建表,请使用 SELECT... INTO 语句来创建一个生成表查询。

若要在运行追加查询之前找出将要追加哪些记录,可以先执行使用同样选择条件的选择查询并查看其结果。

追加查询把记录从一个或多个表复制到其他表中。 包含所追加的记录的表不会受追加查询影响。

如果不想从其他表中追加现有记录,可以通过 VALUES 子句指定每个字段在新的单个记录中的值。 如果忽略了字段列表,VALUES 子句必须包括该表中每个字段的值;否则,INSERT 操作将会失败。 通过附加的带有 VALUES 子句的 INSERT INTO 语句,可以创建希望得到的每一个新增记录。

链接提供方:UtterAccess 社区。 UtterAccess 是主要的 Microsoft Access Wiki 和帮助论坛。

示例

本例选择假想的 New Customers 表中的所有记录并将这些记录添加到 Customers 表。 如果未指定各个列,那么 SELECT 中的表列名必须与 INSERT INTO 中的表列名完全匹配。

    Sub InsertIntoX1() 
     
        Dim dbs As Database 
     
        ' Modify this line to include the path to Northwind 
        ' on your computer. 
        Set dbs = OpenDatabase("Northwind.mdb") 
         
        ' Select all records in the New Customers table  
        ' and add them to the Customers table. 
        dbs.Execute " INSERT INTO Customers " _ 
            & "SELECT * " _ 
            & "FROM [New Customers];" 
             
        dbs.Close 
     
    End Sub

以下示例在 Employees 表中创建一个新记录。

    Sub InsertIntoX2() 
     
        Dim dbs As Database 
     
        ' Modify this line to include the path to Northwind 
        ' on your computer. 
        Set dbs = OpenDatabase("Northwind.mdb") 
         
        ' Create a new record in the Employees table. The  
        ' first name is Harry, the last name is Washington, 
        ' and the job title is Trainee. 
        dbs.Execute " INSERT INTO Employees " _ 
            & "(FirstName,LastName, Title) VALUES " _ 
            & "('Harry', 'Washington', 'Trainee');" 
             
        dbs.Close 
     
    End Sub