1867

一度に挿入するデータのセットが複数あります。たとえば、4行です。私のテーブルには、、、の3つの列がPersonありIdますOffice

INSERT INTO MyTable VALUES ("John", 123, "Lloyds Office");
INSERT INTO MyTable VALUES ("Jane", 124, "Lloyds Office");
INSERT INTO MyTable VALUES ("Billy", 125, "London Office");
INSERT INTO MyTable VALUES ("Miranda", 126, "Bristol Office");

1つのSQLステートメントに4行すべてを挿入できますか?

4

4 に答える 4

2476

SQL Server 2008では、単一のSQLINSERTステートメントを使用して複数の行を挿入できます。

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

これを参照するには、MOCコース2778A-SQLServer2008でのSQLクエリの作成を参照してください。

例えば:

INSERT INTO MyTable
  ( Column1, Column2, Column3 )
VALUES
  ('John', 123, 'Lloyds Office'), 
  ('Jane', 124, 'Lloyds Office'), 
  ('Billy', 125, 'London Office'),
  ('Miranda', 126, 'Bristol Office');
于 2009-01-17T07:14:14.367 に答える
853

単一のテーブルに挿入する場合は、次のようにクエリを記述できます(おそらくMySQLのみ)。

INSERT INTO table1 (First, Last)
VALUES
    ('Fred', 'Smith'),
    ('John', 'Smith'),
    ('Michael', 'Smith'),
    ('Robert', 'Smith');
于 2009-01-17T06:10:26.447 に答える
147

注:この回答は SQL Server 2005 用です。SQL Server 2008 以降の場合、他の回答に見られるように、はるかに優れた方法があります。

SELECT UNION ALL で INSERT を使用できます。

INSERT INTO MyTable  (FirstCol, SecondCol)
    SELECT  'First' ,1
    UNION ALL
SELECT  'Second' ,2
    UNION ALL
SELECT  'Third' ,3
...

ただし、小さなデータセットの場合のみです。これは、4 つのレコードには問題ありません。

于 2009-01-17T06:16:23.593 に答える
89

INSERT構文を使用するステートメントは、VALUES複数の行を挿入できます。これを行うには、列値の複数のリストを含め、それぞれを括弧で囲み、カンマで区切ります。

例:

INSERT INTO tbl_name (a,b,c) VALUES(1,2,3),(4,5,6),(7,8,9);
于 2009-04-01T14:07:24.633 に答える