当前位置: 首页 > 知识库问答 >
问题:

带标识(自动递增)列的大容量插入

孟财
2023-03-14
CREATE TABLE [dbo].[Employee](
 [id] [int] IDENTITY(1,1) NOT NULL,
 [Name] [varchar](50) NULL,
 [Address] [varchar](50) NULL
) ON [PRIMARY]
BULK INSERT Employee  FROM 'path\tempFile.csv ' 
WITH (FIRSTROW = 2,KEEPIDENTITY,FIELDTERMINATOR = ',' , ROWTERMINATOR = '\n');
Name,Address
name1,addr test 1
name2,addr test 2

但会导致以下错误消息:

行2,列1(id)的大容量加载数据转换错误(类型不匹配或指定代码格式的字符无效)。

共有1个答案

窦凯定
2023-03-14

向csv文件中添加一个id列,并将其保留为空:

id,Name,Address
,name1,addr test 1
,name2,addr test 2

从查询中删除KEEPIDENTITY关键字:

BULK INSERT Employee  FROM 'path\tempFile.csv ' 
WITH (FIRSTROW = 2,FIELDTERMINATOR = ',' , ROWTERMINATOR = '\n');

id标识字段将自动递增。

 类似资料:
  • 我获取错误 我已经尝试在。txt文件的每行末尾添加逗号,我还尝试在每行末尾添加''。有什么建议吗?

  • 我正在使用java中的MySQL库执行一个查询。在我的数据库结构中,有一列名为(主键,非空且自动递增)。通常在每次插入查询中,我都将值设置为,在查询执行后,它会增加最后一个id,但在java中这样做会给我异常。 这就是代码: 如何使用自动增量ID执行查询?

  • 问题内容: 我正在寻找这样的查询: id | int | 自动增量 varchar | 255 这样桌子就看起来像 1 | val1 2 | val2 3 | val3 … 除了id总是以每一行都结束而已。 我怎样才能做到这一点? 问题答案:

  • 问题内容: 关于如何从通过调用读取分配给新创建的记录的自动递增身份字段的任何建议? 我知道如何在多个数据库平台的SQL中执行此操作,但是我想知道存在哪些数据库独立接口来执行此操作,以及有关人们在整个数据库平台上的经验的任何输入。 问题答案: 以下代码片段应做ya’: 已知这可用于以下数据库 德比 的MySQL SQL服务器 对于不起作用的数据库(HSQLDB,Oracle,PostgreSQL等)

  • 我想在我的sql-server数据库中插入。txt文件数据。我在.txt文件中使用和不使用PK-Variable时都出现了错误。我的疑问: 使用 从“C:\user\test.txt”大容量插入db.schema.table(FIELDTERMINATOR=';')去吧 null null