sql-server - 使用生成的密钥进行 sql 批量插入
问题描述
我定义了一个带有唯一反对(生成)的表
CREATE TABLE Table1(
Id bigint IDENTITY PRIMARY KEY
,Version VARCHAR(10) NOT NULL
,Date DATE NOT NULL
,Code VARCHAR(10) NOT NULL);
INSERT INTO Table1(Version,Date,Code) VALUES ('1.0','2018-04-16','8615');
INSERT INTO Table1(Version,Date,Code) VALUES ('1.0','2018-04-16','2285');
INSERT INTO Table1(Version,Date,Code) VALUES ('1.0','2018-04-16','11625');
现在我有一个.csv。包含要插入的更多信息的文件。我想像使用 BULK INSERT
BULK INSERT Table1
FROM 'C:\test.csv'
WITH (
FIELDTERMINATOR = ','
,ROWTERMINATOR = '\n'
)
输入文件包含:
1.0,2018-04-16,240061
1.0,2018-04-17,3435
1.0,2018-04-18,2143
1.0,2018-04-19,44
1.0,2018-04-20,2453
1.0,2018-04-01,2012
1.0,2018-04-22,123
1.0,2018-04-23,9887
1.0,2018-04-30,57
1.0,2018-05-1,576
1.0,2018-05-8,35
1.0,2018-05-9,867
1.0,2018-05-10,555
....
运行 BULK INSERT 语句会导致错误
Msg 4864, Level 16, State 1, Line 1
Bulk load data conversion error (type mismatch or invalid character for the specified codepage) for row 1, column 1 (Id).
Msg 4864, Level 16, State 1, Line 1
Bulk load data conversion error (type mismatch or invalid character for the specified codepage) for row 2, column 1 (Id).
将大量数据从 csv 插入到 de 表中的最佳方法是什么?(超过 10000 行)
解决方案
尝试指定列名,如
BULK INSERT Table1 (Version,Date,Code)
FROM 'C:\test.csv'
WITH (
FIELDTERMINATOR = ','
,ROWTERMINATOR = '\n'
)
推荐阅读
- genymotion - 打嗝套装无法捕获移动应用程序流量
- r - 使用方程的输出作为同一函数中的输入 - Rstudio
- python-3.x - 如何找到 ipykernel 的 virtualenv 位置
- docker - 通过 Docker 在 Tomcat 上部署 WAR - 404
- javascript - 如何减少反应上下文地狱?
- java - 获取位置并在 editText 上书写
- java - JMeter Http请求永远连接超时
- javascript - 点击时表情符号反应问题
- swift - 如何以编程方式调整亮度并防止在 WatchOS 上关闭屏幕?
- python-3.x - Python 从另一个全局对象构造一个可变全局对象