我正在使用批量插入将文本文件读入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=','
)
给我
Msg 4864,Level 16,State 1,Line 1
第1行第1列(train_num)的批量加载数据转换错误(类型不匹配或指定代码页的无效字符)。
Msg 4864,Level 16,State 1,Line 1
第2行第2列(arrival_time)的批量加载数据转换错误(类型不匹配或指定代码页的无效字符)。
Msg 4864,Level 16,State 1,Line 1
第3行第2行(arrival_time)的批量加载数据转换错误(类型不匹配或指定代码页的无效字符)。
等
但是,将第一行复制并粘贴到
中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);
的工作原理。我觉得我在批量插入功能中缺少一些完全明显的东西,但是我一无所知。
答案 0 :(得分: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
)