簡體   English   中英

使用1個查詢插入多行

[英]inserting multiple rows with 1 query

我在使用ms access 2003插入多行和1個查詢時遇到問題。當我像下面的代碼一樣使用INSERT INTO

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

問題,ms訪問總是會出現在SQL語句結束后找到的彈出字符 那么,有沒有辦法將數據插入表中?

使用Access SQL,您無法組合兩個INSERT語句。 你可以分別運行它們。 但是如果您需要使用單個語句來執行此操作,則需要使用更復雜的查詢。

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

Dual是一個自定義表,設計為始終只包含一行。 您可以使用此Stack Overflow應答中的說明創建自己的Dual表。

但是,實際上您並不需要用於此目的的自定義表。 您可以使用任何只返回一行的表或查詢,而不是Dual

試試這個

INSERT INTO Table ( Column1, Column2 ) VALUES
( Value1, Value2 ), ( Value1, Value2 )

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

請參考這里

用於在ms-access表中插入多行的SQL代碼

不幸的是,它看起來MS Access不兼容,只允許單個查詢插入,除非你有一個源表。 如果您可以將其掛鈎到可以執行查詢的工具,那么您可以創建一個循環來運行多個插入

使用此確認工作查詢:

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

) ;
insert into animal (animal_id, name, species)
values ( (1,'Foxi Maxi', 'dog'), (2, 'Dodo',' duck') , (3, 'Garfield', 'cat' ) )

使用這個例子

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM