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