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

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

  • 如何插入多行而不重复声明中的“INSERT INTO dbo.Blah”部分? 12个答案

  • 在SQL Server 2008中,您可以使用单个SQL INSERT语句插入多行。

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

    有关此参考,请参阅MOC Course 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');
    

    如果您插入到单个表中,则可以像这样编写查询(可能仅在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条记录来说应该没问题。

    链接地址: http://www.djcxy.com/p/2761.html

    上一篇: Inserting multiple rows in a single SQL query?

    下一篇: Check if table exists in SQL Server