如何定时导数据

huxin1012 2003-03-04 09:47:49
需要每天定时将指定目录下的所有的文件(*.dbf)导入到SQL Server数据库中。
文件是这样命名的:类别日期单位号.dbf,如:dl04002.dbf,要求将单位编号、日期信息也保存到数据库中。

由于每天的日期不同,因此每天要处理的文件名也是不同的。


可否用SQL Server的DTS包来实现?
...全文
44 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
huxin1012 2003-03-06
  • 打赏
  • 举报
回复
没有妥善解决,看来只能在.net中编程解决了。
alikwok 2003-03-05
  • 打赏
  • 举报
回复
补充:

如果要实现把同种类型的DBF文件导入到同一个数据表中,可以对不同类型的文件作判断,然后通过INSERT INTO的方式插入到相应的表中
alikwok 2003-03-05
  • 打赏
  • 举报
回复
参考(见笑了)

通过游标于另一个表中取出单位号,然后加上日期等信息而得出要导入的文件名,并通过BCP命令使其导入到数据库(这里建议取个临时表名),接着再通过SELECT INTO命令把单位编号与日期信息等重新生成一个与文件同名的表,再把临时表删除,然后把游标移到下一条记录...

(因使用了游标与导入数据后又作SELECT INTO的重复性操作,所以会很耗资源,于性能方面考虑属于低下的想法,因此只作参考或备用,望能在此学到更好的方法)
happydreamer 2003-03-05
  • 打赏
  • 举报
回复
参考

select @bcpname='bcp tdmis..td_originalsale_money in '+ltrim(rtrim(@pathname))+'tdsale001.txt -c -t, -U '+@username+'-P '+@passwd
exec master..xp_cmdshell @bcpname

@pathname--服务器路径
huxin1012 2003-03-05
  • 打赏
  • 举报
回复
有没有更好的方法?
pengdali 2003-03-04
  • 打赏
  • 举报
回复
dts包好象可以写脚本我没写过!通过时间来得到文件名!
pengdali 2003-03-04
  • 打赏
  • 举报
回复
在你的操作系统中查找dtsrun.exe。

找到后,复制这个文件的路径,

再打开你的JOB的STEP,把这个路径加到
DTSRUN....的命令前面,
-------------------------------------------
dtsrun /F"e:\web\wwwroot\sunhing\sqlserver\toolsdepart.dts" /Ntoolsdepart
dtsrun /F"e:\web\wwwroot\sunhing\sqlserver\toolsinfor.dts" /Ntoolsinfor
pengdali 2003-03-04
  • 打赏
  • 举报
回复
右键你的数据库服务器-》管理-》SQL Server 代理-》作业-》新建作业,按照要求填就可以了,在“步骤”的“命令”中填写你要执行的存储过程,在“调度”里面填写什么时间执行
huxin1012 2003-03-04
  • 打赏
  • 举报
回复
可是,我需要知道文件名的信息啊?
CrazyFor 2003-03-04
  • 打赏
  • 举报
回复
可以用DTS啊,

先执行一个SQL作业,把你的文件复制成一个固定的文件名,这样就可以建立你的文件连接了。
happydreamer 2003-03-04
  • 打赏
  • 举报
回复
declare @a varchar(20)
set @a='dl'+convert(char(6),getdate(),12)+'.dbf'
print @a --dl04002.dbf

huxin1012 2003-03-04
  • 打赏
  • 举报
回复
楼上说的好像都不能完成我的要求,能不能将详细点?
golovelove 2003-03-04
  • 打赏
  • 举报
回复
建立一个存储过程,调用bcp命令,在用作业调度应该可以!
black_snail 2003-03-04
  • 打赏
  • 举报
回复
用作业调度应该能实现
huxin1012 2003-03-04
  • 打赏
  • 举报
回复
不行不行,类别日期单位号.dbf,如:dl04002.dbf

日期每天不同,单位号可由数据库中的另一个表中取出,是不固定的。

而且,要求将单位编号、日期信息也保存到导入的数据表中。
如,源表中有编号、名称两个字段,那么目标标中将有编号、名称、日期、单位编号四个字段。

所有的同种类型的dbf文件导入到同一个数据表中。
CrazyFor 2003-03-04
  • 打赏
  • 举报
回复
dts是可以写脚本的,正象大力说的那样,可以通过日期来得到文件名。

27,580

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 应用实例
社区管理员
  • 应用实例社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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