【问题标题】:inserting multiple rows with 1 query使用 1 个查询插入多行
【发布时间】:2023-03-28 23:06:01
【问题描述】:

我在使用 ms access 2003 插入包含 1 个查询的多行时遇到问题。当我使用 INSERT INTO 时,如下面的代码所示

INSERT INTO Employee values ('1','b','c');
INSERT INTO Employee values ('2','d','e');  

问题,ms access 总是出现SQL 语句结束后发现的字符。那么,有没有办法将数据插入到表中呢?

【问题讨论】:

    标签: sql ms-access ms-access-2003


    【解决方案1】:

    使用此确认工作查询:

    INSERT INTO Product (Code,Name,IsActive,CreatedById,CreatedDate )
    
    SELECT * FROM (
    
    SELECT '10001000' AS Code,'Blackburn sunglasses' AS Name,1 AS IsActive,1 AS CreatedById,'2/20/2015 12:23:00 AM' AS CreatedDate FROM Product
    
    UNION SELECT '10005200' AS Code,'30 panel football' AS Name,1 AS IsActive,1 AS CreatedById,'2/20/2015 12:23:09 AM' AS CreatedDate FROM Product
    
    ) ;
    

    【讨论】:

      【解决方案2】:

      不幸的是,MS Access 似乎不兼容,除非您有源表,否则只允许插入单个查询。如果您可以将其连接到可以执行查询的工具,那么您可以创建一个循环来运行多个插入

      【讨论】:

        【解决方案3】:

        使用 Access SQL,您不能合并两个 INSERT 语句。您可以分别运行它们中的每一个。但是,如果您需要使用单个语句来执行此操作,则需要使用更复杂的查询。

        INSERT INTO Employee
        SELECT '1','b','c'
        FROM Dual
        UNION ALL
        SELECT '2','d','e'
        FROM Dual;
        

        Dual 是一个自定义表格,旨在始终只包含一行。您可以使用this Stack Overflow answer 中的说明创建自己的Dual 表。

        但是,您实际上并不需要为此目的使用自定义表格。除了Dual,您可以使用任何只返回一行的表或查询。

        【讨论】:

          【解决方案4】:

          试试这个

          INSERT INTO Table ( Column1, Column2 ) VALUES
          ( Value1, Value2 ), ( Value1, Value2 )
          
          INSERT INTO Employee values (('1','b','c'),('2','d','e'));
          

          参考这里

          SQL code to insert multiple rows in ms-access table

          【讨论】:

          • 我用这个方法,但是SQL语句末尾还是会弹出“缺少分号(;)”
          • 最后添加一个分号@FenediW
          【解决方案5】:
          insert into animal (animal_id, name, species)
          values ( (1,'Foxi Maxi', 'dog'), (2, 'Dodo',' duck') , (3, 'Garfield', 'cat' ) )
          

          使用这个例子

          【讨论】:

            猜你喜欢
            • 2011-08-01
            • 1970-01-01
            • 1970-01-01
            • 2011-12-29
            • 2016-02-03
            • 1970-01-01
            • 2011-03-17
            • 2013-11-06
            相关资源
            最近更新 更多