This Domain(Admin5.com) is for Sale:

用DTS导入多个文件数据到SQLServer中

时间:2007-12-23  来源:不详  作者:迈克DB
在我们工作中,经常需要将保存在文件中的数据导入到SQLServe的表中。有时可能需要同时从相同或不相同的文件目录中导入多个文件的数据到SQLServer中。这里我们将讨论如何使用批处理文件和DTS从一个特定的文件目录中,导入多个文件的数据到SQLServer中。
试验环境
  我们先创建整个试验的环境。创建文件目录“C:\MyImport”,和三个文件a.csv、b.csv和c.csv,文件内容如下。同时,在SQLServer中创建一个表用来存放导入的数据。
    C:\MyImport\a.csv
    1,MAK,A9411792711,3400.25
    2,Claire,A9411452711,24000.33
    3,Sam,A5611792711,1200.34
    4,Wright,A5611792711,1200.34
    5,Richard,G561d792755,1223.34
    6,Valarie,B5611792788,1240.32
    C:\MyImport\b.csv
    11,Rubon,9671792711,400.14
    22,Mike,9418952711,4000.56
    39,Hsu,75611792511,1230.00
    C:\MyImport\c.csv
    69,Lucy,8411992710,305.11
    45,Grace,3413452713,246.52
    33,Saint,5461795716,1278.70
    
    CreateDatabaseBank
    Go
织梦内容管理系统

    UseBank
    go
    CreatetableAccount([ID]int,NameVarchar(100),
    AccountNovarchar(100),Balancemoney)
    Go
    Createtablelogtable(idintidentity(1,1),
  Statusvarchar(500),
  Importeddatedatetimedefaultgetdate())
    Go
    usemaster
    go
    sp_addlogin’importuser’,’import’,’Bank’
    go
    useBank
    go
    sp_adduser’importuser’
    go
    sp_addrolemember’db_datareader’,’importuser’
    go
    sp_addrolemember’db_datawriter’,’importuser’
    go
  创键DTS
  1、在DTS中创建3个全局变量,FileName、ServerName和DatabaseName。
  
  
  2、创建TextFile(Source)和SQLServer连接,并创建数据转换任务,如下图所示。
  
  3、设置数据转换的对应关系如下图。
  

  4、创建动态属性任务(dynamictasks):连接InputFile中,设置Catalog的值为全局变量DatabaseName,DataSource的值为全局变量FileName;连接SQLServer中,设置DataSource的值为全局变量ServerName。

copyright dedecms


  

  
  5、增加一个“成功时”的工作流在动态属性任务和连接InputFile之间。
  
  6、如下图那样,创建一个执行SQL任务,来保存数据导入的记录。
  SQL为INSERTINTOLogTable(Status)VALUES(?)
  
  
  点击参数,来设置参数,设置参数1为全局变量FileName。

  
  7、增加一个“成功时”的工作流在连接SQLServer和执行SQL任务之间。
  
  8、将DTS包保存成结构化存储文件。你也可以保存在SQLServer中,但我们这里只讨论保存成结构化存储文件的方式。
  
  创建批处理文件
 如下所示创建批处理文件C:\MyImport\Import.bat。
    REMType:BatchFile
    REMCreatedby:Digjim
    REMImportallcsvfilestoSQLServerusingDTS

    REMExportDIRlistingtoC:\MyImport\Dirlist.txt
    dirc:\MyImport\*.csv/b>C:\MyImport\Dirlist.txt

    REMExecuteDTSpackageforeveryfilenameintheDirlist.txt

    for/f"tokens=1,2,3"%%iin(C:\MyImport\Dirlist.txt)do"C:\ProgramFiles\MicrosoftSQLServer\80\Tools\Binn\DTSrun.exe"-F"c:\myimport\myimportdts1.dts"-Uimportuser-Pimport–A"ServerName"="DIGJIM"-A"FileName"="c:\myimport\%%i"-A"DatabaseName"="Bank"

看完这篇,您有何感觉呢?

文章评论

共有位Admini5网友发表了评论 查看完整内容

24小时热门信息