一度に複数のデータ(例えば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");
4行すべてを1つのSQL文で挿入できますか?
SQL Server 2008では、1つのSQL INSERT文で複数の行を挿入することができます。
INSERT INTO MyTable ( Column1, Column2 ) VALUES
( Value1, Value2 ), ( Value1, Value2 )
これについては、MOCコース2778A - Writing SQL Queries in SQL Server 2008を参照してください。
たとえば、以下のようになります。
INSERT INTO MyTable
( Column1, Column2, Column3 )
VALUES
('John', 123, 'Lloyds Office'),
('Jane', 124, 'Lloyds Office'),
('Billy', 125, 'London Office'),
('Miranda', 126, 'Bristol Office');
単一のテーブルに挿入する場合は、次のようにクエリを書くことができます(MySQLだけかもしれませんが)。
INSERT INTO table1 (First, Last)
VALUES
('Fred', 'Smith'),
('John', 'Smith'),
('Michael', 'Smith'),
('Robert', 'Smith');
注:この回答はSQL Server 2005のものです。SQL Server 2008以降の場合は、他の回答にあるように、もっと良い方法があります。
INSERT with SELECT UNION ALL]1を使用することができます。
INSERT INTO MyTable (FirstCol, SecondCol)
SELECT 'First' ,1
UNION ALL
SELECT 'Second' ,2
UNION ALL
SELECT 'Third' ,3
...
ただし、小さなデータセットの場合のみで、あなたの4つのレコードには問題ないはずです。