在一个SQL查询中插入多行?
我有多组数据立即插入,说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行吗?
在SQL Server 2008中,您可以使用单个SQL INSERT语句插入多行。
INSERT INTO MyTable ( Column1, Column2 ) VALUES ( Value1, Value2 ), ( Value1, Value2 )
对于参考这个看看在MOC课程2778A – 在SQL Server 2008中编写SQL查询。
如果你插入到一个表中,你可以这样编写你的查询(也许只有在MySQL中):
INSERT INTO table1 (First, Last) VALUES ('Fred', 'Smith'), ('John', 'Smith'), ('Michael', 'Smith'), ('Robert', 'Smith');
注意:这个答案适用于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条logging罚款。
使用VALUES
语法的INSERT
语句可以插入多行。 为此,请包含多个列值列表,每个列表值都包含在括号内,并用逗号分隔。
例:
INSERT INTO tbl_name (a,b,c) VALUES(1,2,3),(4,5,6),(7,8,9);