提问




    这个问题在这里已有答案:

    

            

  •             如何在不重复INSERT INTO dbo.Blah的情况下插入多行?声明的一部分?
                    
                        12个答案
                    
            

  •     

最佳参考


在SQL Server 2008中,您可以使用单个SQL INSERT语句插入多行。/questions/2624713/how-do-i-insert-multiple-rows-without-repeating-the-insert-into-dbo-blah-part


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

其它参考1


如果要插入单个表,可以像这样编写查询(可能只在MySQL中):


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

其它参考2


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


你可以使用INSERT和SELECT UNION ALL:[9]


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


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

其它参考3


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


示例:


INSERT INTO tbl_name (a,b,c) VALUES(1,2,3),(4,5,6),(7,8,9);