SQL插入多行

时间:2012-09-11 08:48:13

标签: sql

我想在一个表中插入多行。如何使用单个插入语句执行此操作?

7 个答案:

答案 0 :(得分:67)

将要插入括号/括号(value1, value2, value3)的每一行值换行,并用逗号分隔括号/括号,以便插入表格中。

INSERT INTO example
VALUES
  (100, 'Name 1', 'Value 1', 'Other 1'),
  (101, 'Name 2', 'Value 2', 'Other 2'),
  (102, 'Name 3', 'Value 3', 'Other 3'),
  (103, 'Name 4', 'Value 4', 'Other 4');

答案 1 :(得分:15)

您可以使用SQL批量插入声明

BULK INSERT TableName
FROM 'filePath'
WITH
(
  FIELDTERMINATOR = '','',
  ROWTERMINATOR = ''\n'',
  ROWS_PER_BATCH = 10000, 
  FIRSTROW = 2,
  TABLOCK
)

以获取更多参考检查

https://www.google.co.in/webhp?sourceid=chrome-instant&ion=1&espv=2&ie=UTF-8#q=sql%20bulk%20insert

您也可以从代码中批量插入数据

请查看以下链接:

http://www.codeproject.com/Articles/439843/Handling-BULK-Data-insert-from-CSV-to-SQL-Server

答案 2 :(得分:12)

1--> {Simple Insertion when table column sequence is known}
    Insert into Table1
    values(1,2,...)

2--> {Simple insertion mention column}  
    Insert into Table1(col2,col4)
    values(1,2)

3--> {bulk insertion when num of selected collumns of a table(#table2) are equal to Insertion table(Table1) }   
    Insert into Table1 {Column sequence}
    Select * -- column sequence should be same.
       from #table2

4--> {bulk insertion when you want to insert only into desired column of a table(table1)}
    Insert into Table1 (Column1,Column2 ....Desired Column from Table1)  
    Select Column1,Column2..desired column from #table2

答案 3 :(得分:3)

答案 4 :(得分:3)

您可以使用UNION All子句在表中执行多次插入。

例如:

INSERT INTO dbo.MyTable (ID, Name)
SELECT 123, 'Timmy'
UNION ALL
SELECT 124, 'Jonny'
UNION ALL
SELECT 125, 'Sally'

Check here

答案 5 :(得分:2)

对于MSSQL,有两种方法:(考虑到您有一个“用户”表,下面两个示例都使用此表)

1)如果需要在用户表中插入不同的值。然后,您可以编写如下语句:

    INSERT INTO USERS VALUES
(2, 'Michael', 'Blythe'),
(3, 'Linda', 'Mitchell'),
(4, 'Jillian', 'Carson'),
(5, 'Garrett', 'Vargas');

2)另一种情况,如果需要为所有行插入相同的值(例如,需要在此处插入10行)。然后,您可以使用以下示例语句:

    INSERT INTO USERS VALUES
(2, 'Michael', 'Blythe')
GO 10

希望这会有所帮助。

答案 6 :(得分:-1)

我们将以最简单的形式将CSV文件导入到目标表中。我将示例CSV文件放置在C:驱动器上,现在我们将创建一个表,该表将从CSV文件导入数据。

DROP TABLE IF EXISTS Sales 

CREATE TABLE [dbo].[Sales](
    [Region] [varchar](50) ,
    [Country] [varchar](50) ,
    [ItemType] [varchar](50) NULL,
    [SalesChannel] [varchar](50) NULL,
    [OrderPriority] [varchar](50) NULL,
    [OrderDate]  datetime,
    [OrderID] bigint NULL,
    [ShipDate] datetime,
    [UnitsSold]  float,
    [UnitPrice] float,
    [UnitCost] float,
    [TotalRevenue] float,
    [TotalCost]  float,
    [TotalProfit] float
)

以下BULK INSERT语句将CSV文件导入到Sales表中。

BULK INSERT Sales
FROM 'C:\1500000 Sales Records.csv'
WITH (FIRSTROW = 2,
    FIELDTERMINATOR = ',',
    ROWTERMINATOR='\n' );