この質問にはすでに答えがあります。
私は一度に挿入する複数のデータセットを持っています、例えば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");
できますかinsert
1行に4行すべてSQL statement
?
SQL Server 2008では、単一のSQL INSERTステートメントを使用して複数の行を挿入できます。
INSERT INTO MyTable ( Column1, Column2 ) VALUES
( Value1, Value2 ), ( Value1, Value2 )
これを参照するには、MOCコース2778A - SQL Server 2008でのSQLクエリの作成を参照してください。
例えば:
INSERT INTO MyTable ( Column1, Column2, Column3 )
VALUES ('John', 123, 'Lloyds Office'),
('Jane', 124, 'Lloyds Office'),
('Billy', 125, 'London Office'),
('Miranda', 126, 'Bristol Office');
VALUES
句は1000 "です。そうではありませんINSERT
1000行に制限されているステートメント。 - Anon
単一のテーブルに挿入する場合は、次のようにクエリを書くことができます(おそらくMySQLのみ)。
INSERT INTO table1 (First, Last)
VALUES
('Fred', 'Smith'),
('John', 'Smith'),
('Michael', 'Smith'),
('Robert', 'Smith');
注意:この回答はSQL Server 2005用です。SQLServer 2008以降では、他の回答に見られるように、もっと優れた方法があります。
あなたが使用することができますSELECT UNION ALLを指定したINSERT:
INSERT INTO MyTable (FirstCol, SecondCol)
SELECT 'First' ,1
UNION ALL
SELECT 'Second' ,2
UNION ALL
SELECT 'Third' ,3
...
ただし、小さいデータセットに限ります。これは4つのレコードには問題ありません。
INSERT
使用するステートメントVALUES
構文は複数行を挿入できます。これを行うには、それぞれが括弧で囲まれ、コンマで区切られた複数の列値のリストを含めます。
例:
INSERT INTO tbl_name (a,b,c) VALUES(1,2,3),(4,5,6),(7,8,9);
insert into profiles (name, description) select first, 'Auto-generated' from users
あなたは挿入と更新のステートメントを混同しているように見えます。 - Kzqaiinsert ... select
構文、必要なものすべてが揃い、必要に応じて柔軟に対応できます。dev.mysql.com/doc/refman/5.5/en/insert.html - Kzqai