SQLservice实现批量插入
时间: 2024-05-02 13:20:58 浏览: 73
SpringBoot整合Mybatis连接SQL Server 跨库批量插入
SQL Server提供了多种方法来实现批量插入数据,以下是其中两个常用的方法:
1. BULK INSERT语句
BULK INSERT语句可以将CSV或文本文件中的数据批量插入到数据库表中,语法如下:
```
BULK INSERT 表名
FROM '数据文件路径'
WITH
(
FIELDTERMINATOR = ',', --字段分隔符
ROWTERMINATOR = '\n', --行分隔符
BATCHSIZE = 10000 --每次提交的行数
)
```
例如,将名为data.csv的文件中的数据插入到名为test的表中,可以使用以下语句:
```
BULK INSERT test
FROM 'C:\data.csv'
WITH
(
FIELDTERMINATOR = ',',
ROWTERMINATOR = '\n',
BATCHSIZE = 10000
)
```
2. INSERT INTO SELECT语句
INSERT INTO SELECT语句可以将一个表中的数据插入到另一个表中,语法如下:
```
INSERT INTO 目标表 (列1, 列2, 列3, ...)
SELECT 列1, 列2, 列3, ...
FROM 源表
```
例如,将名为source的表中的数据插入到名为target的表中,可以使用以下语句:
```
INSERT INTO target (col1, col2, col3)
SELECT col1, col2, col3
FROM source
```
可以使用该方法来批量插入数据,只需要将源表替换为CSV或文本文件的临时表,然后将目标表替换为需要插入数据的表。例如,假设需要将名为temp的CSV文件中的数据插入到名为test的表中,可以使用以下语句:
```
CREATE TABLE #temp (col1 INT, col2 VARCHAR(50), col3 VARCHAR(50)) --创建临时表
BULK INSERT #temp
FROM 'C:\temp.csv'
WITH
(
FIELDTERMINATOR = ',',
ROWTERMINATOR = '\n',
BATCHSIZE = 10000
)
INSERT INTO test (col1, col2, col3)
SELECT col1, col2, col3
FROM #temp
DROP TABLE #temp --删除临时表
```
阅读全文