在一个SQL查询中插入多行?

我有多组数据立即插入,说4行。 我的表有三列: PersonIdOffice

 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);