Sql server 批量插入isn';t正在将.txt文件读入SQL Server

Sql server 批量插入isn';t正在将.txt文件读入SQL Server,sql-server,tsql,sql-server-2012,Sql Server,Tsql,Sql Server 2012,我使用大容量插入将文本文件读入SQLServer表。当我尝试使用大容量插入时,我总是会遇到同样的错误,即使我取文本文件的第一行,并将值复制到一个普通的旧insert into语句中,一切都会正常工作。我的数据库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:0

我使用大容量插入将文本文件读入SQLServer表。当我尝试使用大容量插入时,我总是会遇到同样的错误,即使我取文本文件的第一行,并将值复制到一个普通的旧insert into语句中,一切都会正常工作。我的数据库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=','
 )
给我

Msg 4864,第16级,状态1,第1行
第1行第1列(序列号)的批量加载数据转换错误(指定代码页的类型不匹配或无效字符)。
Msg 4864,第16级,状态1,第1行
第2行第2列(到达时间)的大容量加载数据转换错误(指定代码页的类型不匹配或无效字符)。
Msg 4864,第16级,状态1,第1行
第3行第2列(到达时间)的大容量加载数据转换错误(指定代码页的类型不匹配或无效字符)

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

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); 
工作。我觉得我在批量插入函数中遗漏了一些非常明显的东西,但我对此一无所知。

试试这个

 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

 )

查看格式化文件提示,确保在运行此查询之前,您尝试导入的文件未在其他任何位置打开。我已确保文件已关闭,并使用行终止符重新运行它。我仍然会遇到这些错误(甚至尝试使用“\r\n”作为行终止符),您是否只尝试使用“\n”来执行此操作,请告诉我您尝试插入这些记录的列的数据类型以及该.txt文件中大约有多少记录。从左到右,数据类型为int、time、time、varchar(50)和int。文本文件中有2275行。仅使用“\n”。所以,我刚才试着读了一行,去掉了《泰晤士报》的引文。这就是问题所在吗?出于某种原因,我认为《泰晤士报》应该有引号。这是因为当您在时间列中大容量插入带有“your_data”的数据时,sql server将其视为字符串数据类型varchar/nvarchar,这就是它抛出错误的原因。