0

我正在使用批量插入将文本文件读入 SQL Server 表。当我尝试使用批量插入时,我总是遇到同样的错误,即使我取文本文件的第一行,并将值复制到一个普通的旧插入语句中,一切正常。我的数据库 stop_times 设置如下:

train_num int,
arrival_time time,
dept_time time,
station_name varchar(50),
seq_num, int

我的 .txt 文件具有以下格式

 101,'04:30:00','04:30:00','San Jose',1
 101,'04:35:00','04:35:00','Santa Clara',2
 101,'04:40:00','04:40:00','Lawrence',3

跑步

 bulk insert dbo.stop_times
 from 'C:\Users\amanda\Desktop\stop_times1.txt'
 with(
     FIELDTERMINATOR=','
 )

给我

消息 4864,级别 16,状态 1,第 1
行第 1 行第 1 列 (train_num) 的批量加载数据转换错误(指定代码页的类型不匹配或无效字符)。
消息 4864,级别 16,状态 1,第 1
行第 2 行第 2 列 (arrival_time) 的批量加载数据转换错误(指定代码页的类型不匹配或无效字符)。
消息 4864,级别 16,状态 1,第 1
行第 3 行第 2 列 (arrival_time) 的批量加载数据转换错误(指定代码页的类型不匹配或无效字符)。

ETC

但是,将第一行复制并粘贴到

insert into stop_times(train_num, arrival_time, dept_time, station_name, seq_num)
values (101, '04:30:00', '04:30:00', 'San Jose', 1); 

作品。我觉得我在批量插入功能中遗漏了一些完全明显的东西,但我一无所知。

4

1 回答 1

0

尝试这个

 bulk insert dbo.stop_times
 from 'C:\Users\amanda\Desktop\stop_times1.txt'
 with(
     FIELDTERMINATOR=',',
     ROWTERMINATOR = '\n'
 )

如果你在第一行有列名,你需要做这样的事情

 bulk insert dbo.stop_times
 from 'C:\Users\amanda\Desktop\stop_times1.txt'
 with(
     FIELDTERMINATOR=',',
     ROWTERMINATOR = '\n',
     FIRSTROW = 2

 )
于 2013-10-12T18:51:59.460 回答