вставка нескольких строк с 1 запросов

у меня проблема с вставкой нескольких строк с 1 запросом с помощью ms access 2003. Когда я использую INSERT INTO как код ниже

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

проблема, ms access всегда появляется всплывающее окно символы, найденные после окончания инструкции SQL. Итак, есть ли способ вставить данные в таблицу?

5 ответов


С Access SQL вы не можете объединить два INSERT заявления. Вы можете запустить каждый из них по отдельности. Но если вам нужно сделать это с помощью одного оператора, вам потребуется использовать более сложный запрос.

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

Dual - это настраиваемая таблица всегда содержит только одну строку. Вы можете создать свой собственный Dual таблица с использованием инструкций из этот ответ переполнения стека.

однако для этой цели вам на самом деле не нужна пользовательская таблица. Вместо Dual, вы можете использовать любую таблицу или запрос, который возвращает только одну строку.


попробуй такое

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

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

см. здесь

код SQL для вставки нескольких строк в таблицу ms-access


к сожалению, 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' ) )
использовать