在单个SQL查询中插入多行? [重复]

我有一组数据要一次插入,好比4行。 spa

个人表有三列: PersonIdOfficecode

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 statement insert全部4行吗? server


#1楼

若是要插入单个表,则能够像这样编写查询(可能只在MySQL中): blog

INSERT INTO table1 (First, Last)
VALUES
    ('Fred', 'Smith'),
    ('John', 'Smith'),
    ('Michael', 'Smith'),
    ('Robert', 'Smith');

#2楼

注意:此答案适用于SQL Server 2005.对于SQL Server 2008及更高版本,有更好的方法,如其余答案中所示。 ip

您能够在SELECT UNION ALL中使用INSERTget

INSERT INTO MyTable  (FirstCol, SecondCol)
    SELECT  'First' ,1
    UNION ALL
SELECT  'Second' ,2
    UNION ALL
SELECT  'Third' ,3
...

仅适用于小型数据集,对于您的4条记录应该没问题。 it


#3楼

在SQL Server 2008中,您能够使用单个SQL INSERT语句插入多行。 io

INSERT INTO MyTable ( Column1, Column2 ) VALUES
( Value1, Value2 ), ( Value1, Value2 )

有关参考,请参阅MOC课程2778A - 在SQL Server 2008中编写SQL查询。 table

例如:

INSERT INTO MyTable
  ( Column1, Column2, Column3 )
VALUES
  ('John', 123, 'Lloyds Office'), 
  ('Jane', 124, 'Lloyds Office'), 
  ('Billy', 125, 'London Office'),
  ('Miranda', 126, 'Bristol Office');

#4楼

使用VALUES语法的INSERT语句能够插入多行。 为此,请包含多个列值列表,每一个列值都括在括号内并用逗号分隔。

例:

INSERT INTO tbl_name (a,b,c) VALUES(1,2,3),(4,5,6),(7,8,9);
相关文章
相关标签/搜索