SQL插入多行

Jan*_*ani 37 sql

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

Tsc*_*cka 75

将要插入括号/括号中的每一行值换行,(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');
Run Code Online (Sandbox Code Playgroud)

  • SQL Server也支持这种语法. (8认同)
  • 我已经检查过:它是SQL-92以来的语法.在SQL-89中不允许这样做.这个答案是对的. (7认同)
  • 伟大的!在 Sql Server 2016 中受支持,并且相对于单个 INSERT 的速度大约快 10 倍 (3认同)

小智 16

您可以使用SQL批量插入语句

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

更多参考检查

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


Ram*_*Ali 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
Run Code Online (Sandbox Code Playgroud)


her*_*arn 7

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

前任:

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

在这里查看


Shi*_*kar 7

对于MSSQL,有两种方法:(假设你有一个'users'表,下面两个例子都使用这个表为例)

1)以防万一,您需要在用户表中插入不同的值。然后你可以写这样的语句:

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

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

    INSERT INTO USERS VALUES
(2, 'Michael', 'Blythe')
GO 10
Run Code Online (Sandbox Code Playgroud)

希望这可以帮助。

  • 《GO 10》 不认识那一首! (2认同)