【问题标题】:Bulk insert stopped working批量插入停止工作
【发布时间】:2015-12-11 20:00:25
【问题描述】:

我正在尝试将 .csv 文件从 excel 导入到 SQL Server Manager 2014 中的表中我昨晚让它工作并保存了我使用购买的代码然后当我尝试插入另一个表时它没有插入它只是一直说零行受影响

BULK INSERT SchoolModel.dbo.Students
From 'C:\Users\Justin\Desktop\SchoolModeler\StudentTable.csv'
With
      (
         FIRSTROW= 2 ,
         FIELDTERMINATOR =' |',
         ROWTERMINATOR =' \n'
      );

昨晚工作得很好,现在不行了工作了,它也不会插入,所以现在我陷入了数小时的沮丧之中,我不知道为什么它会突然停止工作?

CSV File

 CREATE TABLE Students
(
StudentID  INTEGER NOT NULL ,
LastName   VARCHAR (25) NOT NULL ,
FirstName  VARCHAR (25) NOT NULL ,
Residency  CHAR (1) ,
BirthDate  DATE NOT NULL ,
Gender     CHAR (1) ,
DegreePlan VARCHAR (50) NOT NULL

) ; ALTER TABLE Students 添加约束 Students_PK PRIMARY KEY ( StudentID ) ;

固定为

    Use SchoolModel
    Go
    BULK INSERT SchoolModel.dbo.Students
    From 'C:\Users\Justin\Desktop\SchoolModeler\StudentTable.csv'
   With
  (
     FIRSTROW = 2,
     FIELDTERMINATOR =',',
     ROWTERMINATOR = '\n'
  );

【问题讨论】:

  • 您能否添加我的 csv 示例和表格定义?

标签: tsql bulkinsert


【解决方案1】:

您可能编辑了 csv,而 excel 确实更改了分隔符或换行符。

使用文本编辑器打开您的 csv 并验证这一点。

也许它只是来自编辑,但您的 sql 在分隔符前显示了一个空格。这必须被删除。

在 Windows 操作系统上,换行符是 \r\n。

您可以通过使用文本编辑器(如 pspad 或显示不可打印字符的同等编辑器)打开 csv 来验证这一点。

【讨论】:

  • 使用记事本 ++ 在 csv 中的任何地方都看不到任何空间,将其更改为 \r\n 也没有做任何事情
  • 但是字段分隔符确实改变了。
  • 是的,我之前尝试过使用逗号,但你是对的,是那里的空格给它带来了问题,而且它是一个 |而不是一个,不敢相信这么小的东西给了我这么多的挫败感哈哈
猜你喜欢
  • 1970-01-01
  • 2019-01-06
  • 2013-09-30
  • 1970-01-01
  • 1970-01-01
  • 2021-05-26
  • 2018-01-22
  • 1970-01-01
  • 2013-10-07
相关资源
最近更新 更多