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

<script type="text/javascript"> </script> <script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"> </script>
<script type="text/javascript"> </script><script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"> </script>

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

   在我们工作中,经常需要将保存在文件中的数据导入到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。
  
   
  
  5、增加一个“成功时”的工作流在动态属性任务和连接InputFile之间。
  
  6、如下图那样,创建一个执行SQL任务,来保存数据导入的记录。
  SQL为INSERTINTOLogTable(Status)VALUES(?)
  
  
  点击参数,来设置参数,设置参数1为全局变量FileName。
    
  
  7、增加一个“成功时”的工作流在连接SQLServer和执行SQL任务之间。
  
  8、将 DTS包保存成结构化存储文件。你也可以保存在SQLServer中,但我们这里只讨论保存成结构化存储文件的方式。
  

  创建批处理文件
  如下所示创建批处理文件C:/MyImport/Import.bat。
    REMType:BatchFile
    REMCreatedby:Digjim
    REMImportallcsvfilestoSQLServerusing DTS
 
    REMExportDIRlistingtoC:/MyImport/Dirlist.txt
    dirc:/MyImport/*.csv/b>C:/MyImport/Dirlist.txt
 
    REMExecute DTSpackageforeveryfilenameintheDirlist.txt

    for/f"tokens=1,2,3"%%iin(C:/MyImport/Dirlist.txt)do"C:/ProgramFiles/MicrosoftSQLServer/80/Tools/Binn/ DTSrun.exe"-F"c:/myimport/myimport DTS1. DTS"-Uimportuser-Pimport–A"ServerName"="DIGJIM"-A"FileName"="c:/myimport/%%i"-A"DatabaseName"="Bank"上一页 
<script type="text/javascript"> </script> <script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"> </script>
<script type="text/javascript"> </script><script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"> </script>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值