我需要同时插入多组数据,例如4行。我的表有三列: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");
我可以在一个SQL语句中插入所有4行吗?
使用VALUES语法的INSERT语句可以插入多行。为此,请包含多个列值列表,每个列值都用括号括起来,并用逗号分隔。
例子:
INSERT INTO tbl_name (a,b,c) VALUES(1,2,3),(4,5,6),(7,8,9);
注意:此答案适用于SQL Server 2005。对于SQL Server 2008和更高版本,有其他答案所示的更好的方法。
可以将INSERT与SELECT UNION ALL一起使用:
INSERT INTO MyTable (FirstCol, SecondCol)
SELECT 'First' ,1
UNION ALL
SELECT 'Second' ,2
UNION ALL
SELECT 'Third' ,3
...
不过,仅适用于小数据集,这对于您的4条记录来说应该很好。
在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语法的INSERT语句可以插入多行。为此,请包含多个列值列表,每个列值都用括号括起来,并用逗号分隔。
例子:
INSERT INTO tbl_name (a,b,c) VALUES(1,2,3),(4,5,6),(7,8,9);
如果要插入到单个表中,可以这样编写查询(可能只在MySQL中):
INSERT INTO table1 (First, Last)
VALUES
('Fred', 'Smith'),
('John', 'Smith'),
('Michael', 'Smith'),
('Robert', 'Smith');