首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

-sql server 2000 读取.csv文件的有关问题-

2012-04-20 
-------------sql server 2000 读取.csv文件的问题---------------- 在服务器上的D:\DateCSV目录下有一个D

-------------sql server 2000 读取.csv文件的问题----------------

在服务器上的D:\DateCSV   目录下有一个Date_new.csv文件
(目录下同时还有很多带日期的Date_new_070421.csv,Date_new_070422.csv文件)

请问在sql   server   2000中有什么办法每半小时去读取该目录下的文件Date_new.csv   再insert到数据库的表中吗?
怎么实现呢?

[解决办法]
1.将目录下的csv送到临时文件中
exec master..xp_cmdshell 'dir d:\DateCSV\Date_new*.csv /b > tmp.txt '
2.取得目录下的csv文件路径存入临时表
create table #b(path varchar(200))
insert 表名
select * from OpenRowset( 'MSDASQL ', 'Driver={Microsoft Text Driver (*.txt; *.csv)};
DefaultDir=d:\DateCSV\; ', 'select * from tmp.txt ')
3.逐行读取csv文件,用2中的openrowset来插入到数据库中(动态语句实现)
[解决办法]
创建作业,半小时调度执行一次。

SQL 访问csv文件可以用bcp或bulk insert。


EXEC master..xp_cmdshell 'bcp 数据库名..表名 in 文件全路径 -c -t, -S 服务名 -U 用户名(需要有写入权限) -P 密码 '


bulk insert test.dbo.tbname from 'D:\Test.csv ' with(fieldterminator= ', ',rowterminator= '\n ')


查一下联机帮助。
[解决办法]
说的很清楚了,tmp.txt不存在,说明没生成这个文件。。。

热点排行