【问题标题】:sql bulk insert with generated key [duplicate]使用生成的密钥进行sql批量插入[重复]
【发布时间】:2018-05-08 12:13:02
【问题描述】:

我定义了一个带有唯一对象(生成)的表

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 行)

【问题讨论】:

  • 你说得对,谢谢

标签: sql-server csv tsql insert bulkinsert


【解决方案1】:

尝试指定列名,如

BULK INSERT Table1 (Version,Date,Code)
FROM 'C:\test.csv' 
WITH (
FIELDTERMINATOR = ','
,ROWTERMINATOR = '\n'
)

【讨论】:

    猜你喜欢
    • 2013-09-05
    • 2012-04-20
    • 1970-01-01
    • 2017-10-17
    • 1970-01-01
    • 1970-01-01
    • 2017-12-26
    • 1970-01-01
    • 2013-03-19
    相关资源
    最近更新 更多