代码改变世界

txt文件分割导入数据库

2010-01-03 11:27  曾祥展  阅读(1179)  评论(0编辑  收藏

--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+'''
WITH

  FIELDTERMINATOR =
''|''
  ROWTERMINATOR =
''\n''
)
')
go
exec test 'd:\1.txt'