50分 求一个sqlserver 的DTS 的问题。
我要用dts实现这样一个功能: 
 1.将excel文件导入到ms   sqlserver2000。 
 2.这个excel文件的名称是可变的,但按固定名称+月份变化的,excel文件里有多个sheet. 
 3.DTS是自动在每月3号固定的时间执行。DTS执行前要查找是否有包含当月名称命名的文件,如果没有要发送email给管理员。   
 请路过的sqlserver高手们看看,给点思路,给个例子更好了:)
------解决方案--------------------1.将excel文件导入到ms sqlserver2000。 
 如果数据量不大:可以用OPENDATASOURCE 
 insert into 表格 SELECT *  
 FROM OpenDataSource(  'Microsoft.Jet.OLEDB.4.0 ', 
    'Data Source= "c:\Finance\account.xls ";User ID=Admin;Password=;Extended properties=Excel 5.0 ')...xactions 
  如果数据量大可以考虑用BCP 
 2.用SELECT month(getdate()) as a可以得到月份,可以动态的的生成文件名 
 3.可以用作业执行 
 总之:写一段存储过程放在作业中执行 
------解决方案--------------------创建到电子表格的链接.sql 
 Use master 
 go 
 exec sp_addlinkedserver 
 @server= 'MyServer ', 
 @srvproduct= 'Excel ', 
 @provider= 'Microsoft.Jet.OLEDB.4.0 ', 
 @datasrc= 'D:\USER.xls ', 
 @provstr= 'excel 5.0 ' 
 然后再在控制台的安全性里面创建链接服务器就行了!   
 运行本示例前,需要将“USER1.xls”文件拷贝到D盘根目录下。 
 访问Excel电子表格中的数据.sql 
 SELECT 用户编号,用户名称,用户密码    --选择Excel表中的数据列  
 FROM OpenDataSource(  'Microsoft.Jet.OLEDB.4.0 ',    --要访问的数据源 
    /*指定电子表格路径、登录名称、密码*/ 
    'Data Source= "D:\USER1.xls ";     
    User ID=ADMIN; 
    Password=; 
    Extended properties=Excel 5.0 ')...[sheet1$] 
    --选择USER1电子表格中sheet1工作表 
 哥们别忘给分啊!我没什么分,下载东西都不能下载,如果学得能帮你,就请给分与我!
------解决方案--------------------用dts实现没必要,写几句简单的Sql语句交给SqlAgent去做,出错了通知管理员就好   
 建作业最好用企业管理器,因为大家都说那个看起来很直观,不怕写错   
 定一个步骤,在步骤中写上   
 declare @month varchar(2) 
 set @month = Month(getDate()) --当前月   
 --这是一个sheet,有多个就写多个 
 exec ( 'insert into [表1] SELECT * FROM OpenDataSource 
  ( ' 'Microsoft.Jet.OLEDB.4.0 ' ', 
    ' 'Data Source= "c:\固定名称 ' ' + @month +  ' '.xls ";User ID=Admin;Password=;Extended properties=Excel 8.0 ' ')...[sheet1$] ')     
 定义执行的时间为每月3号,企业管理器中点点鼠标就好     
 执行前要查找是否有包含当月名称命名的文件,如果肯定是要报错了, 
 所以定义执行失败后要发送email给管理员,这个打个勾就可以,不过要保证你的SqlServer定义了邮件接收者     
------解决方案--------------------在域中用OpenDataSource会有权限的问题,windows的域权限控制做的也算是相当到家了。