2012-12-28 18 views
8

Mam problem z włożeniem wiele wierszy z 1 kwerendy przy użyciu MS Access 2003. Gdy używam INSERT INTO jak poniższy kodwstawianie wielu wierszy z 1 kwerendy

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

problemu, dostęp ms zawsze pojawia się pop-up znaków znalezione po zakończeniu instrukcji SQL. Czy istnieje jakiś sposób wstawienia danych do tabeli?

Odpowiedz

3

z dostępem SQL nie można połączyć dwa INSERT oświadczenia. Możesz uruchomić każdy z nich osobno. Ale jeśli chcesz to zrobić za pomocą pojedynczej instrukcji, musisz użyć bardziej złożonego zapytania.

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

Dual jest stół niestandardowe zaprojektowane, aby zawsze zawierać tylko jeden wiersz. Możesz utworzyć własny stół Dual, korzystając z instrukcji od this Stack Overflow answer.

Jednak do tego celu nie jest potrzebna niestandardowa tabela. Zamiast Dual można użyć dowolnej tabeli lub kwerendy, która zwraca tylko jeden wiersz.

1

spróbować

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

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

patrz tutaj

SQL code to insert multiple rows in ms-access table

+0

użyć tej metody, ale nie nadal pojawia się wyskakujące okienko "brakujący średnik (;) na końcu instrukcji SQL – noname

+1

dodaj średnik w końcu @FenediW – SRIRAM

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

korzystania z tego przykładu

+0

Próbuję użyć tej metody, ale pojawia się błąd składni – noname

0

Niestety, wygląda na to, że MS Access nie jest kompatybilny i zezwala na wstawianie pojedynczych zapytań, chyba że posiadasz tabelę źródłową. Jeśli można podłączyć to narzędzie, które może wykonać zapytanie, wtedy można zrobić pętlę uruchomić Multiple wkładkę

0

używać tego potwierdzić zapytanie robocza:

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 

) ;