10

msaccess2003を使用して1つのクエリで複数の行を挿入する際に問題が発生しました。INSERT INTO以下のコードのように使用すると

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

問題は、msaccessが常にSQLステートメントの終了後に見つかったポップアップ文字として表示されることです。それで、データをテーブルに挿入する方法はありますか?

4

5 に答える 5

4

INSERTAccess SQLでは、2つのステートメントを組み合わせることはできません。それぞれを個別に実行できます。ただし、1つのステートメントでそれを行う必要がある場合は、より複雑なクエリを使用する必要があります。

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

Dualは、常に1行のみを含むように設計されたカスタムテーブルです。このStackOverflowの回答Dualの手順を使用して、独自のテーブルを作成できます。

ただし、この目的のために実際にはカスタムテーブルは必要ありません。の代わりにDual、1行のみを返す任意のテーブルまたはクエリを使用できます。

于 2012-12-28T05:32:13.063 に答える
1

これを試して

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

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

ここを参照してください

ms-accessテーブルに複数の行を挿入するSQLコード

于 2012-12-28T05:16:53.430 に答える
0

残念ながら、MS Accessには互換性がなく、ソーステーブルがない限り単一のクエリ挿入しか許可されていないようです。これをクエリを実行できるツールにフックできる場合は、ループを作成して複数の挿入を実行できます

于 2012-12-28T05:46:45.437 に答える
0

この確認作業クエリを使用します。

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

) ;
于 2015-02-19T19:50:31.167 に答える
-1
insert into animal (animal_id, name, species)
values ( (1,'Foxi Maxi', 'dog'), (2, 'Dodo',' duck') , (3, 'Garfield', 'cat' ) )

この例を使用する

于 2012-12-28T05:18:19.743 に答える