2012-12-28 16 views
8

Ho problema nell'inserire più righe con 1 interrogazione con MS Access 2003. Quando uso INSERT INTO come il codice sottoinseriscono più righe con 1 domanda

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

il problema, ms accesso appare sempre pop-up caratteri trovato dopo la fine dell'istruzione SQL. Quindi, c'è un modo per inserire i dati nella tabella?

risposta

3

Con accesso SQL non è possibile combinare due INSERT dichiarazioni. Potresti eseguirli separatamente. Ma se hai bisogno di farlo con una singola istruzione, dovrai usare una query più complessa.

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

Dual è una tabella personalizzata destinato a contenere sempre una sola riga. È possibile creare la propria tabella Dual utilizzando le istruzioni da this Stack Overflow answer.

Tuttavia, non è effettivamente necessario un tavolo personalizzato per questo scopo. Invece di Dual, puoi utilizzare qualsiasi tabella o query che restituisca solo una riga.

1

provare questo

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

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

riferisco

SQL code to insert multiple rows in ms-access table

+0

io uso questo metodo, ma ci appare ancora un pop-up "punto e virgola mancante (;) alla fine dell'istruzione SQL – noname

+1

aggiungi un punto e virgola alla fine @FenediW – SRIRAM

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

utilizzare questo esempio

+0

provo a utilizzare questo metodo ma viene visualizzato l'errore di sintassi – noname

0

Sfortunatamente, MS Access non è compatibile e consente solo l'inserimento di una sola query a meno che non si disponga di una tabella di origine. Se si può collegare ad uno strumento in grado di eseguire la query, allora si può fare un ciclo per eseguire l'inserto multiplo

0

Utilizzare questa Confermare la domanda di lavoro:

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 

) ;