在SQL中批量插入.txt文件

时间:2015-06-16 13:20:12

标签: sql-server tsql insert bulkinsert

我试图将.txt文件导入高级查询工具(我使用的SQL客户端)。到目前为止,我有:

CREATE TABLE #tb_test
(
id INTEGER,
name varchar(10),
dob date,
city char(20),
state char(20),
zip integer
);

insert into #tb_test
values
(1,'TEST','2015-01-01','TEST','TEST',11111)
;

bulk insert #tb_test
from 'h:\tbdata.txt'
    with
    (
    fieldterminator = '\t',
    rowterminator = '\n'
    );

我收到一条错误消息,指出第1行有语法错误。我错过了#tb_test来的数据库(如db。#tb_test)?

这里是tbdata.txt文件中的一行:

2,'TEST2','2012-01-01','TEST','TEST',21111

1 个答案:

答案 0 :(得分:0)

我很好奇这个问题,我找到了以下解决方案:

您的数据以逗号分隔,但您尝试按TAB拆分 两个选项:将文件数据更改为TAB分隔fieldterminator = '\t'更改为fieldterminator = ','

直接从文件加载时DATE格式存在问题,我最好的解决方案是将临时字段 dob 更改为键入VARCHAR(20),然后在传递到最终显示/数据存储时转换为DATE。

以下是更正后的代码:

CREATE TABLE #tb_test
(
id INTEGER,
name varchar(10),
dob varchar(20),
city char(20),
state char(20),
zip integer
);

insert into #tb_test
values
(1,'TEST','2015-01-01','TEST','TEST',11111)
;

bulk insert #tb_test
from 'h:\tbdata.txt'
    with
    (
    fieldterminator = ',',
    rowterminator = '\n'
    );