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

大容量插入无法将。txt文件读入SQL Server

微生德泽
2023-03-14

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

train_num int,
arrival_time time,
dept_time time,
station_name varchar(50),
seq_num, int
 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=','
 )

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

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); 

管用。我觉得我在大容量插入函数中遗漏了一些非常明显的东西,但我一无所知。

共有1个答案

裴甫
2023-03-14

试试这个

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

如果在第1行有列名,则需要执行如下操作

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

 )
 类似资料:
  • 我正在为SQL Server使用大容量插入命令,但由于某些原因,第一行没有插入。为什么不能从第一行插入数据?大容量插入是否需要标头作为默认设置,如何规避?如果我添加一个虚拟行,并将设置为,那么插入第一行就没有问题了,但我认为这不是一个好的解决方案。 示例数据:

  • 我试图从查询字符串中获取一个变量,并将其写入文本文件。我试过这样做: 我得到以下错误: 警告:fopen(etlLOG.txt)[function.fopen]:无法打开流:在E:\Users\george\listener中的权限被拒绝。php第8行 警告:f写():在第9行的E:\用户\乔治\listener.php中,提供的参数不是有效的流资源 警告:fclose():提供的参数不是E:\U

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

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

  • 就像有人说的第二种方式更慢,但我不确定,那么哪种方式更好呢?不能使数据库崩溃。

  • 我有一个txt文件,格式如下: 我想将其加载到数据帧中,以列作为标题,以值作为行。