本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《 阿里云开发者社区用户服务协议 》和 《 阿里云开发者社区知识产权保护指引 》。如果您发现本社区中有涉嫌抄袭的内容,填写 侵权投诉表单 进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

-- txt文件分割导入数据库

drop table a;
-- Step 1:建表
create table a(a1 varchar ( 5 ), a2 varchar ( 5 ), a3 varchar ( 5 ), a4 varchar ( 5 ));

-- Step 2:在'C:\'创建一个名为'test.txt'的记事本文件,输入以下内容
a1 | a2 | a3 | a4$$b1 | b2 | b3 | b4$$c1 | c2 | c3 | c4$$

-- Setp 3:导入数据:[MRM20090721]是数据库名,[dbo]是对象名, [a]是表名
BULK INSERT [ MRM20090721 ] . [ dbo ] . [ a ]
FROM ' c:\test.txt '
WITH (
FIELDTERMINATOR
= ' | ' ,
ROWTERMINATOR
= ' $$ '
)

select * from a;
-- ------------------------
a1    a2    a3    a4
b1    b2    b3    b4
c1    c2    c3    c4

表A中有5个字段, 分别为金币排名(goldtop)、用户名(username)、时间(time)、金币数(gold)、地区(address)
要求:先清空表A的里的所有数据。 然后,插入本地路径下的一个TXT文本文件的内容。
如路径为:E:\file\aaa.txt 路径通过存储过程参数的形式传递进去。
TXT的文本内容为格式为:148|小明|2009-06-03|10|重庆
TXT的格式和表A的字段相对应,但有“|”符号分割 请各位帮忙把想对应的数据存入到相应的字段。 */
-- ---------------------------------------------------------------
create table tb(goldtop int ,username varchar ( 10 ), [ time ] datetime ,gold int ,address varchar ( 10 ))
go
alter proc test
@path varchar ( 100 )
as
truncate table tb
exec ( ' BULK INSERT tb
FROM
''' + @path + '''
FIELDTERMINATOR =
'' | '' ,
ROWTERMINATOR =
'' \n ''
)
' )
go
exec test ' d:\1.txt '

本文转自曾祥展博客园博客,原文链接:http://www.cnblogs.com/zengxiangzhan/archive/2010/01/03/1638191.html,如需转载请自行联系原作者