求助:txt文本导入sql server

mib3000 2005-07-26 02:10:06
解决马上结贴

表结构:
create table tmp
(
a char not null ,
b integer,
c char(14)
)
文本格式:
10527272|3960|20050701000058|
10527298|6000|20050701000421|
10527302|6000|20050701001340|
字段间用“|”分隔,记录间用回车分隔
...全文
233 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
mib3000 2005-07-26
  • 打赏
  • 举报
回复
thx 结贴
phantomMan 2005-07-26
  • 打赏
  • 举报
回复
如果后面有'|',改为下面得就可以得到3行

BULK INSERT ColinTest..tablet FROM 'c:\ddd.txt'
WITH (
DATAFILETYPE = 'char',
FIELDTERMINATOR = '|',
ROWTERMINATOR = '|\n'
)

neuafei 2005-07-26
  • 打赏
  • 举报
回复
选择目的表,右键菜单有:导入数据,数据源选择文本文件,找到文本文件,下一步,选择带分隔符,文本限定符输入“|”,下一步,完成即可,注意,因为你的文本文件最后多一个|,所以,建库请最后增加一个字段,允许为空,导入后再删除该字段即可。
phantomMan 2005-07-26
  • 打赏
  • 举报
回复
create table tablet(
A nvarchar(100),
B nvarchar(100),
C nvarchar(100)
)


BULK INSERT ColinTest..tablet FROM 'c:\ddd.txt'
WITH (
DATAFILETYPE = 'char',
FIELDTERMINATOR = '|',
ROWTERMINATOR = '\n'
)

select * from tablet


------------------------------------------------------------------------
A B C
---------- ------ ---------------
10527272 3960 20050701000058|
10527298 6000 20050701000421|
10527302 6000 20050701001340|
10527272 3960 20050701000058|
10527298 6000 20050701000421|
10527302 6000 20050701001340|

(所影响的行数为 6 行)
--------------------------------产生六行数据是因为你最后有 '|' 造成的
phantomMan 2005-07-26
  • 打赏
  • 举报
回复
10527272|3960|20050701000058|

这是一条记录吗? 结尾还有 '|' ????
phantomMan 2005-07-26
  • 打赏
  • 举报
回复
BULK INSERT datebasename..tablename FROM 'c:\ddd.txt'
WITH (
DATAFILETYPE = 'char',
FIELDTERMINATOR = '|',
ROWTERMINATOR = '\n'
)

34,594

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧